Algorithm/백준 알고리즘_Python
[알고리즘][Python] 백준(BOJ) 1302 베스트셀러_파이썬
알파이
2020. 10. 2. 08:28
1302 베스트셀러 www.acmicpc.net/problem/1302
1302번: 베스트셀러
첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고
www.acmicpc.net
문제 풀기 전 공부할 것 : 정렬
풀이
<내용>
- books dictionary를 만들어 책의 이름을 key로 하고 하루 동안 팔린 책의 개수를 value로 저장한다.
- 저장한 dictionary를 orders list에 (책의 이름, 팔린 책의 개수) 형태로 저장한다.
- orders를 많이 팔린 책의 개수, 사전 순으로 정렬한다.
<코드>
import sys
input = sys.stdin.readline
n = int(input())
books = {}
for _ in range(n):
b = input().rstrip()
if b in books:
books[b] += 1
else:
books[b] = 1
orders = []
for b in books:
orders.append((b, books[b]))
orders.sort(key=lambda x:(-x[1], x[0]))
print(orders[0][0])
728x90
반응형