https://www.acmicpc.net/problem/1302
1302번: 베스트셀러
첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고
www.acmicpc.net
line = int(input())
book_list={}
for i in range(line):
book=input()
if book not in book_list:
book_list[book]=1 #딕셔너리 시작부분
else:
book_list[book]+=1 #있는 key면 그냥 +1씩
max_freq = max(book_list.values())
max_books=[]
for book_name,book_freq in book_list.items():
if book_freq==max_freq:
max_books.append(book_name)
max_books.sort()
print(max_books[0])
value 기준으로 정렬하는 operator를 써보려 했지만, 사전순 정렬조건때문에 또다시 해야하기때문에 그냥 for문돌렸으나
line = int(input())
book_list={}
for i in range(line):
book=input()
if book not in book_list:
book_list[book]=1 #딕셔너리 시작부분
else:
book_list[book]+=1 #있는 key면 그냥 +1씩
book_list = list(book_list.items()) #[('a',2),('b',4)...]
book_list.sort(key=lambda x: (-x[1],x[0]))
print(book_list[0][0])
어제까지의 key:lambda 정렬조건을 사용하면 그럴필요가없다. dictionary를 list로 튜플형식으로 받아오려면 10번줄같이해야한다. 그것이 포인트.
정렬 (7/14)
'Coding Test > 정렬' 카테고리의 다른 글
[TIL] 정렬(백준 1431 파이썬) 2022.01.24 (0) | 2022.01.24 |
---|---|
[TIL] 정렬(백준 1302 파이썬) 2022.01.23 (0) | 2022.01.23 |
[TIL] 정렬(백준 10610 파이썬) 2022.01.21 (0) | 2022.01.21 |
[TIL] 정렬(백준 8979 파이썬) 2022.01.20 (0) | 2022.01.20 |
[TIL] 정렬(백준 1181 파이썬) 2022.01.19 (0) | 2022.01.19 |