[Python] 백준 알고리즘 1302번 - 베스트셀러

2022. 5. 6. 19:56알고리즘/문제풀이


[Python] 백준 알고리즘 1302번 - 베스트셀러

문제 출처: https://www.acmicpc.net/problem/1302

 

1302번: 베스트셀러

첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고

www.acmicpc.net

1302 베스트셀러

 

접근 방법

딕셔너리의 키와 값을 이용하여 접근 ,  sorted 메서드 정렬을 통해서 문제를 풀이하였다.

 

 

풀이 코드

import sys

input = sys.stdin.readline

n = int(input())
book = dict()

for i in range(n):
    cur = input().strip()
    if book.get(cur):
        book[cur] += 1
    else:
        book[cur] = 1

# 정렬 수행, lambda를 사용하며 key 람다를 사용한다.
# 먼저 items() 메서드를 이용해서 키와 값들의 쌍을 가저온다
# 후에 key값을 이용하여 첫번째 인자를 기준으로 내림차순 정렬을 시행한다.
# 따라서 문제에서 요구하는 바와 같이 가장많이 팔린 책 순으로 정렬 및 만약 책의 이름이 겹친다면
# 사전순으로 정렬이 된다.
result = sorted(list(book.items()), key = lambda x: (-x[1], x[0]))

print(result[0][0])