가장 많이 팔린 책 중,
사전 순서에서 가장 앞서는 책의 제목을 출력하는 문제이다.
책이 팔린 순서대로 책의 제목이 주어지기 때문에,
책의 제목을 key, 팔린 개수를 value로 하는 딕셔너리로 접근했다.
그리고 value의 최댓값을 통해,
베스트 셀러에 해당되는 책의 제목만 다시 리스트에 담은 뒤,
이 리스트를 정렬하여 사전 순서로 가장 앞서는 책의 제목만 출력했다.
코드(정답)는 다음과 같다.
# 1302
import sys
n = int(sys.stdin.readline())
books = {}
for _ in range(n):
book_name = sys.stdin.readline().rstrip()
# 해당 책의 판매 이력이 있는 경우
if book_name in books:
books[book_name] += 1
# 해당 책의 판매 이력이 없는 경우
else:
books[book_name] = 1
# 최고 판매량 계산하기
max_value = max(books.values())
# 최고 판매량을 갖는 책(베스트 셀러) 목록 구하기
best_seller = []
for name, quantity in books.items():
if quantity == max_value:
best_seller.append(name)
# 베스트 셀러 중 사전 순서 1번째 제목 출력하기
best_seller.sort()
print(best_seller[0])