백준

백준 1302번: 베스트 셀러 (파이썬)

inns21 2023. 8. 1. 18:32

처음에 틀린 이유 : 가장 많이 팔린 책이 여러개일 경우 사전 순으로 가장 앞서는 제목을 출력한다는 조건을 빼먹었다

# 2번째 시도

n = int(input())
book_list = dict()
for i in range(n):
  book = input()
  if book in book_list:
    book_list[book] += 1
  else:
    book_list[book] = 1
    
# 딕셔너리를 튜플의 형태로 빼서 책의 제목을 기준으로 오름차순 정렬
book_list = sorted(book_list.items(), key=lambda x: x[0])

# 책 제목을 기준으로 정렬된 튜플을 책의 개수로 내림차순 정렬
book_list = sorted(book_list, key=lambda x:x[1], reverse=True)

# 정렬된 튜플의 첫번째 데이터의 책제목만 출력
print(book_list[0][0])

 

통과 하고 좀 더 찾아보니 다중 조건 정렬하기라는 방법이 있었고

n = int(input())
book_list = dict()
for i in range(n):
  book = input()
  if book in book_list:
    book_list[book] += 1
  else:
    book_list[book] = 1
book_list = sorted(book_list.items(), key=lambda x:(-x[1],x[0]))

print(book_list[0][0])

이렇게 수정할 수 있었다