백준 1302

jeonghens·2024년 3월 1일

알고리즘: BOJ

목록 보기
42/125

가장 많이 팔린 책 중,
사전 순서에서 가장 앞서는 책의 제목을 출력하는 문제이다.


책이 팔린 순서대로 책의 제목이 주어지기 때문에,
책의 제목을 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])
profile
알고리즘이나 SQL 문제 풀이를 올리고 있습니다. 피드백 환영합니다!

0개의 댓글