[백준] 1302번 베스트셀러

거북이·2023년 1월 12일
0

백준[실버4]

목록 보기
32/91
post-thumbnail

💡문제접근

  • 딕셔너리를 이용해서 정리했다. 그 다음 lambda를 이용해서 딕셔너리 정렬을 우선순위에 따라서 적용한 다음 첫 번째 원소를 출력하게끔 코드를 작성했다.

💡코드(메모리 : 30616KB, 시간 : 40ms)

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()를 이용해서 정렬을 수행해야 한다.

📌 딕셔너리 key값 기준 정렬 수행

>>> dict = sorted(dict.items())

sorted()에 딕셔너리를 넣었을 때는 딕셔너리의 key값 기준으로 정렬하는 것이 default이고 오름차순이 default이기 때문에 딕셔너리의 items()만 넣으면 된다.

>>> dict = sorted(dict.items(), reverse=True)

내림차순 정렬을 수행하려면 reverse=True만 추가해주면 된다.

📌 딕셔너리 value값 기준 정렬 수행

>>> 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]으로 작성하면 된다.

💡소요시간 : 2m

0개의 댓글