파이썬/백준 문제
[파이썬][백준] 1302번: 베스트셀러
코딩고치
2020. 5. 31. 22:25
1. 문제
주소: https://www.acmicpc.net/problem/1302
1302번: 베스트셀러
첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고
www.acmicpc.net
문제 유형: 탐색
- 딕셔너리를 이용하여 key: 책이름, value: 팔린 횟수로 저장
- 가장 많이 팔린 책들을 리스트로 따로 저장
- 알파벳순으로 정렬 후 0번 인덱스에 있는 값 출력
2. 소스코드
import sys
def bestseller(n):
booklist = {}
for _ in range(n):
book = sys.stdin.readline().strip()
if book not in booklist:
booklist[book] = 1
else:
booklist[book] += 1
large_value = max(booklist.values())
bestsellers = []
for book, count in booklist.items():
if count == large_value:
bestsellers.append(book)
return sorted(bestsellers)[0]
n = int(sys.stdin.readline())
print(bestseller(n))