Coding Test/초보자를 위한 파이썬 300제

[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(051~060)_12.15

Klay_J 2022. 12. 15. 16:25

안녕하세요. Harry입니다.

 

현재 풀이중인 초보자를 위한 파이썬 300제 풀이를 진행하면서 나름대로 파악했던 문제 출제 의도와 풀이를 작성했습니다.

모든 풀이는 직접 Pycharm을 통해 에러없이 출력됨을 확인 후 작성했습니다.

 

초보자를 위한 파이썬 300제 풀이는 Wikidocs에 무료로 배포된 전자책을 활용했습니다/

https://wikidocs.net/book/922

[학습목표]

1. 각 문제별 요구하는 역량(출제의도)이 무엇인지 파악할 수 있다.

2. 각 문제별 요구하는 기술 및 기능을 활용하여 문제를 해결할 수 있다.

 

051 ~ 060

051 리스트 생성

2016년 11월 영화 예매 순위 기준 top3는 다음과 같습니다. 영화 제목을 movie_rank 이름의 리스트에 저장해보세요. (순위 정보는 저장하지 않습니다.)

- 요구역량 : 리스트를 생성할 수 있는가?

 

순위영화
1 닥터 스트레인지
2 스플릿
3 럭키
 정답확인
movie_rank = ['닥터 스트레인지', '스플릿', '럭키']

052 리스트에 원소 추가

051의 movie_rank 리스트에 "배트맨"을 추가하라.

- 요구역량 : append 메서드를 활용하여 특정 요소를 리스트에 추가할 수 있는가

 

 정답확인
movie_rank = ['닥터 스트레인지', '스플릿', '럭키']
movie_rank.append('배트맨')
print(movie_rank)

053

movie_rank 리스트에는 아래와 같이 네 개의 영화 제목이 바인딩되어 있다. "슈퍼맨"을 "닥터 스트레인지"와 "스플릿" 사이에 추가하라.

- 요구역량 : insert메서드를 활용하여 리스트 내 원하는 위치에 요소를 삽입할 수 있는가?

movie_rank = ['닥터 스트레인지', '스플릿', '럭키', '배트맨']
 정답확인
movie_rank = ['닥터 스트레인지', '스플릿', '럭키', '배트맨']
movie_rank.insert(1,'슈퍼맨')
print(movie_rank)

054

movie_rank 리스트에서 '럭키'를 삭제하라.

- 요구역량 : del 메서드를 활용하여 특정 요소를 삭제할 수 있는가?

- del메서드 뒤에 . 이 붙지 않으며, 괄호도 [ ] 대괄호를 활용하며, 안에 인덱스 넘버를 삽입해야한다.

movie_rank = ['닥터 스트레인지', '슈퍼맨', '스플릿', '럭키', '배트맨']
 정답확인
movie_rank = ['닥터 스트레인지', '슈퍼맨', '스플릿', '럭키', '배트맨']
del movie_rank[3]
print(movie_rank)

055

movie_rank 리스트에서 '스플릿' 과 '배트맨'을 를 삭제하라.

- 요구역량 : del 메서드를 활용하여 요소를 원하는 만큼 삭제할 수 있는가?

movie_rank = ['닥터 스트레인지', '슈퍼맨', '스플릿', '배트맨']
- 저는 2:0(인덱스 2부터 끝까지)를 활용했지만, 답지에선 2번에 걸쳐서 인덱스 2번에 위치한 요소를 삭제하는 방식을 활용했습니다.
삭제 시 인덱스 번호는 그대로지만, 인덱스 번호와 매핑된 요소는 변경됨을 기억해야 합니다.
정답확인
movie_rank = ['닥터 스트레인지', '슈퍼맨', '스플릿', '배트맨']
del movie_rank[2:]
print(movie_rank)

#아래와 같은 방법도 있다#
movie_rank = ['닥터 스트레인지', '슈퍼맨', '스플릿', '배트맨']
del movie_rank[2]
del movie_rank[2]
print(movie_rank)

056

lang1과 lang2 리스트가 있을 때 lang1과 lang2의 원소를 모두 갖고 있는 langs 리스트를 만들어라.

- 리스트 더하기를 활용하여 두 리스트가 합쳐진 리스트를 출력할 수 있는가?

>> lang1 = ["C", "C++", "JAVA"]
>> lang2 = ["Python", "Go", "C#"]
실행 예:
>> langs
['C', 'C++', 'JAVA', 'Python', 'Go', 'C#']
 
정답확인
lang1 = ["C", "C++", "JAVA"]
lang2 = ["Python", "Go", "C#"]
a = lang1+lang2
print(a)

057

다음 리스트에서 최댓값과 최솟값을 출력하라. (힌트: min(), max() 함수 사용)

- 요구역량 : min,max 메서드를 활용하여 리스트 내 최대 최소 값을 출력할 수 있는가?

- 기존 메서드는 '리스트명.메서드명()' 으로 작성했으나, min,max 같은 경우에는 max(리스트명)으로 작성한다.

nums = [1, 2, 3, 4, 5, 6, 7]
실행 예:
max:  7
min:  1
 정답확인
nums = [1, 2, 3, 4, 5, 6, 7]
print('max: ', max(nums))
print('min: ', min(nums))

058

다음 리스트의 합을 출력하라. 

- sum 메서드를 활용하여 리스트 내 요소의 합을 출력할 수 있는가?

- sum 도 min.max와 마찬가지로 메서드명(리스트명)으로 입력해야한다.

nums = [1, 2, 3, 4, 5]
실행 예:
15
 
정답확인
nums = [1, 2, 3, 4, 5]
print(sum(nums))

059

다음 리스트에 저장된 데이터의 개수를 화면에 구하하라.

- 요구역량 : len 메서드를 활용하여 리스트 내 개수를 셀 수 있는가?

- len 메서드도 마찬가지로, len(리스트명)으로 작성해야한다.

cook = ["피자", "김밥", "만두", "양념치킨", "족발", "피자", "김치만두", "쫄면", "소시지", "라면", "팥빙수", "김치전"]
 정답확인
cook = ["피자", "김밥", "만두", "양념치킨", "족발", "피자", "김치만두", "쫄면", "소시지", "라면", "팥빙수", "김치전"]
print(len(cook))

060

다음 리스트의 평균을 출력하라. 

- sum,len 메서드를 활용 및 사칙연산을 통해 리스트 합의 평균을 구할 수 있는가?

nums = [1, 2, 3, 4, 5]
실행 예:
3.0
 정답확인
nums = [1, 2, 3, 4, 5]
print(sum(nums)/5)

#sum&len 이용#
nums = [1, 2, 3, 4, 5]
average = sum(nums) / len(nums)
print(average)

감사합니다.