[백준/파이썬] 1302번 베스트셀러 풀이

업데이트:



문제 정보


풀이

문제

김형택은 탑문고의 직원이다. 김형택은 계산대에서 계산을 하는 직원이다. 김형택은 그날 근무가 끝난 후에, 오늘 판매한 책의 제목을 보면서 가장 많이 팔린 책의 제목을 칠판에 써놓는 일도 같이 하고 있다.

오늘 하루 동안 팔린 책의 제목이 입력으로 들어왔을 때, 가장 많이 팔린 책의 제목을 출력하는 프로그램을 작성하시오.

  • 자세한 문제 및 입출력 예제는 상단의 문제 출처(백준 홈페이지)를 참조해주세요

코드

import sys;read=sys.stdin.readline
d={}
for i in range(int(read())):
    s=input()
    try:d[s]+=1
    except:d[s]=1
d=d.items()
m=max(d,key=lambda x:x[1])[1]
print(sorted(filter(lambda x:x[1]==m,d),key=lambda x:x[0])[0][0])

설명

주어지는 N이 1000이하로 작은 값이기 때문에 시간복잡도가 O(n)인 알고리즘으로 단순하게 탐색하여 찾을 수 있습니다.

판매량이 동일할경우를 위해 최대판매량을 알아낸 후, 최대 판매량인 책들을 이름순으로 정렬하여 가장 첫번째 항목을 출력합니다.



댓글남기기