알고리즘/풀이
백준 1302번 베스트셀러 파이썬
목표는 커리
2021. 2. 15. 20:40
728x90
SMALL
문제
김형택은 탑문고의 직원이다. 김형택은 계산대에서 계산을 하는 직원이다. 김형택은 그날 근무가 끝난 후에, 오늘 판매한 책의 제목을 보면서 가장 많이 팔린 책의 제목을 칠판에 써놓는 일도 같이 하고 있다.
오늘 하루 동안 팔린 책의 제목이 입력으로 들어왔을 때, 가장 많이 팔린 책의 제목을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고, 알파벳 소문자로만 이루어져 있다.
출력
첫째 줄에 가장 많이 팔린 책의 제목을 출력한다. 만약 가장 많이 팔린 책이 여러 개일 경우에는 사전 순으로 가장 앞서는 제목을 출력한다.
예제 입력 1
5
top
top
top
top
kimtop
예제 출력 1
top
제출 답안
name= {}
for _ in range(int(input())):
title=input().strip()
try:
name[title] += 1
except:
name[title] = 1
name = dict(sorted(name.items(), key=lambda x: (-x[1],x[0])))
print(list(name.keys())[0])
- 딕셔너리를 만든다.
- input값을 받아서 for문을 돌린다.
- 문자열을 받는다.
- try, except를 사용하여 키 값이 없으면 except로 가서 key를 만들고 key가 있으면 1을 더한다.
- 나온 숫자를 내림차순과 이름을 오름차순으로 다시 만든다.
- keys로 리스트를 만들어서 제일 크면서 오름차순인걸 뽑는다.
728x90
LIST