코딩고치

[파이썬][백준] 1302번: 베스트셀러 본문

파이썬/백준 문제

[파이썬][백준] 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))
Comments