- 딕셔너리를 이용해서 정리했다. 그 다음 lambda를 이용해서 딕셔너리 정렬을 우선순위에 따라서 적용한 다음 첫 번째 원소를 출력하게끔 코드를 작성했다.
N = int(input())
bestseller = {}
for _ in range(N):
book = input()
if book not in bestseller:
bestseller[book] = 1
else:
bestseller[book] += 1
sort_bestseller = sorted(bestseller.items(), key = lambda x : (-x[1], x[0]))
print(sort_bestseller[0][0])
딕셔너리를 정렬할 때는
sort()
가 아닌sorted()
를 이용해서 정렬을 수행해야 한다.
>>> dict = sorted(dict.items())
sorted()에 딕셔너리를 넣었을 때는 딕셔너리의 key값 기준으로 정렬하는 것이 default이고 오름차순이 default이기 때문에 딕셔너리의
items()
만 넣으면 된다.
>>> dict = sorted(dict.items(), reverse=True)
내림차순 정렬을 수행하려면
reverse=True
만 추가해주면 된다.
>>> dict = sorted(dict.items(), key=lambda x:x[1])
딕셔너리의 각 원소는
key : value
구조로 이루어져있다.
따라서, value값을 기준으로 정렬하려면x[1]
이 된다.
>>> dict = sorted(dict.items(), key=lambda x:-x[1])
내림차순 정렬을 수행하려면 마이너스 부호를 붙여서
-x[1]
으로 작성하면 된다.