본문 바로가기
#개인연구 및 공부#/[python]

(2020.11.01)파이썬 300제 문제풀기 [No.051 - 060] - 리스트 1

by 착한해커 2020. 11. 1.

파이썬 300제[No.051 - 060] - 리스트1

파이썬에서 데이터타입에 구애받지 않고 저장 및 순서변경, 삽입, 삭제 등을 할 수 있는 자유로운 파이썬의 자료구조

 

 

 

No.051 리스트생성

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

 

[순위영화]

1 닥터 스트레인지
2 스플릿
3 럭키

 

 

입력) 입력받을 변수를 지정하고 오른쪽 입력값을 []로 감싸주면 리스트로 지정된다.

movie_rank = ["닥터스트레인지", "스플릿", "럭키"]
print(movie_rank)

 

출력)

['닥터스트레인지', '스플릿', '럭키']

 

 

 

 

No.052 리스트에 원소추가

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

 

입력) 2가지 방법이 있다. append()를 사용하여 리스트 마지막 순서, 즉 끝에 삽입하는 방법, insert(위치번호, 삽입 값)를 사용하여 내가 원하는 순서에 삽입하는 방법이 있다 

movie_rank1 = ["닥터스트레인지", "스플릿", "럭키"]
movie_rank1.append("배트맨") # 리스트 마지막 순서에 원소 추가

movie_rank2 = ["닥터스트레인지", "스플릿", "럭키"]
movie_rank2.insert(2, "배트맨") # 리스트에 원하는 순서에 원소 추가

print(movie_rank1)
print(movie_rank2)

 

출력)

['닥터스트레인지', '스플릿', '럭키', '배트맨']
['닥터스트레인지', '스플릿', '배트맨', '럭키']

 

 

 

No.053 리스트에 원소추가

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

movie_rank = ['닥터 스트레인지', '스플릿', '럭키', '배트맨']

 

입력) 52번문제에서 설명한 insert()를 사용하여 삽입한다. 닥터스트레인지와 스플릿 사이의 위치라면 리스트 역시 0 부터 순서가 시작되기 때문에 삽입 위치는 1로 지정하고 삽입값인 "슈퍼맨"을 입력한다.

movie_rank = ['닥터 스트레인지', '스플릿', '럭키', '배트맨']
movie_rank.insert(1, "슈퍼맨") # 리스트에 원하는 순서에 원소 추가

print(movie_rank)

 

출력)

['닥터 스트레인지', '슈퍼맨', '스플릿', '럭키', '배트맨']

 

 

 

No.054 리스트에 원소삭제

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

movie_rank = ['닥터 스트레인지', '슈퍼맨', '스플릿', '럭키', '배트맨']

 

입력) 2가지 방법이 있다 del 명령어를 사용하여 해당 변수의 리스트에서 삭제하고 싶은 원소의 위치번호를 입력값으로 받아서 삭제, remove()를 호출하여 삭제할 원소의 값을 직접입력하여 삭제한다.

movie_rank_1 = ['닥터 스트레인지', '슈퍼맨', '스플릿', '럭키', '배트맨']
movie_rank_2 = ['닥터 스트레인지', '슈퍼맨', '스플릿', '럭키', '배트맨']

del movie_rank_1[3] # 원소 위치번호를 지정하여 삭제
movie_rank_2.remove("럭키") # remove()를 사용하여 리스트 특정 원소값을 지정하고 삭제

print(movie_rank_1)
print(movie_rank_2)

 

출력)

['닥터 스트레인지', '슈퍼맨', '스플릿', '배트맨']
['닥터 스트레인지', '슈퍼맨', '스플릿', '배트맨']

 

 

 

No.055 리스트에 원소삭제

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

movie_rank = ['닥터 스트레인지', '슈퍼맨', '스플릿', '배트맨']

 

입력) del 명령어를 사용하여 2번호출하고 삭제한다. 처음 리스트 원소 삭제될 때 2번에 위치한 스플릿이 삭제되면, 배트맨이 2번 위치가 되므로 del명령어가 두번 실행되면 스플릿과 배트맨 원소가 리스트에서 삭제된다.

movie_rank_1 = ['닥터 스트레인지', '슈퍼맨', '스플릿', '배트맨']
del movie_rank_1[2] # 원소 위치번호를 지정하여 삭제
del movie_rank_1[2] # 2번 위치가 삭제가 되면 배트맨이 2번이 되므로 삭제

print(movie_rank_1)

 

출력)

['닥터 스트레인지', '슈퍼맨']

 

 

 

No.056 리스트 합치기

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

lang1 = ["C", "C++", "JAVA"]

lang2 = ["Python", "Go", "C#"]

 

입력) + 연산자를 사용하여 리스트 합치기, extend()를 사용하여 lang1 변수에 lang2 변수의 리스트 값을 추가

lang1 = ["C", "C++", "JAVA"]
lang2 = ["Python", "Go", "C#"]

total_lang_1 = lang1 + lang2 # + 연산자를 사용하여 리스트 끼리 합침
lang1.extend(lang2) # extend()를 사용하여 lang1에 lang2 리스트를 추가

print(total_lang_1)
print(lang1) # 원본 lang1에 리스트가 추가되는 것이므로 특정변수가 아닌 원본리턴값에 추가됨

 

출력)

['C', 'C++', 'JAVA', 'Python', 'Go', 'C#']
['C', 'C++', 'JAVA', 'Python', 'Go', 'C#']

 

 

 

No.057 리스트 최대 최소 값 구하기

문제) 다음 리스트에서 최댓값과 최솟값을 출력하라.

nums = [1, 2, 3, 4, 5, 6, 7]

 

입력) max(), min() 함수를 사용하여 최대값과 최소값을 구한다.

nums = [1, 2, 3, 4, 5, 6, 7]
max_nums = max(nums)
min_nums = min(nums)

print(max_nums, min_nums, sep="\n")

 

출력)

7
1

 

 

 

No.058 리스트 원소 끼리 합

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

nums = [1, 2, 3, 4, 5]

 

입력) sum() 함수를 사용하여 합계를 출력한다.

nums = [1, 2, 3, 4, 5]
sum_nums = sum(nums) # sum() 함수사용

print(sum_nums)

 

출력)

15

 

 

 

No.059 리스트 원소 개수 구하기

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

cook = ["피자", "김밥", "만두", "양념치킨", "족발", "피자", "김치만두", "쫄면", "쏘세지", "라면", "팥빙수", "김치전"]

 

입력) len() 함수를 사용하여 리스트에 저장된 데이터 개수를 출력한다.

cook = ["피자", "김밥", "만두", "양념치킨", "족발", "피자", "김치만두", "쫄면", "쏘세지", "라면", "팥빙수", "김치전"]
len_cook = len(cook)

print(len_cook)

 

출력)

12

 

 

 

 

No.060 리스트 원소 평균값 구하기

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

nums = [1, 2, 3, 4, 5]

 

입력) 파이썬에서는 원소의 평균값을 구하는 함수는 없다. 따라서 전체값을 합하는 sum()함수와 리스트 원소 개수를 출력하는 len()함수를 활용하여 문제를 푼다. 

nums = [1, 2, 3, 4, 5]
AVG_nums = sum(nums) / len(nums) # 평균값이므로 리스트 원소전체합 / 리스트 원소개수

print(AVG_nums)
print(int(AVG_nums)) #참고 : 소수점이 붙지 않아야 한다면 int로 감싸서 형변환하여 출력한다.

 

출력)

3.0
3

 

댓글