-
[백준] 1302 - 베스트 셀러알고리즘 2023. 4. 7. 15:59728x90
1. 문제
https://www.acmicpc.net/problem/1302
1302번: 베스트셀러
첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고
www.acmicpc.net
2. 접근
1. ' 가장 많이 팔린 ' 여기서 Counter.most_common() 을 써도 될거 같다 라는 생각은 들었지만, 일반적으로 dictionary() 를 사용해서 풀어 봤다
2. dict() 을 생성해주고, key값에 book이 없다면 ( 아직 팔린적이 없다면 ) ' key:value ' 을 하나 만들어 주고, 있다면 value += 1을 해준다
3. value 값을 토대로 내림 차순 정렬하고, value 값이 같으면 사전순으로 정렬을 해준다.
3. 풀이
import sys input = sys.stdin.readline from collections import defaultdict dic = dict() for i in range(int(input())): book = input().rstrip() if book not in dic.keys(): dic[book] = 1 else: dic[book] += 1 dic = sorted(dic.items(), key=lambda x:(-x[1],x[0])) print(dic[0][0])
'알고리즘' 카테고리의 다른 글
[백준] 1920 - 수 찾기 (0) 2023.04.09 [백준] 1431 - 시리얼 번호 (0) 2023.04.07 [백준] 1059. 좋은구간 (0) 2023.04.07 [프로그래머스] 실패율 (0) 2023.04.06 [프로그래머스] [3차] n진수 게임 (0) 2023.03.28