-
[Python] 백준 1302번 베스트셀러Algorithm 2020. 5. 14. 22:07
가장 빈도가 높은 문자열 출력하기
포인트!
- collections 모듈을 사용하여 알고리즘을 구현하였다.
from collections import Counter
- collections에 있는 Counter를 이용하여 각 데이터 마다의 빈도를 구하고
ex) Counter({'top': 4, 'kimtop': 1})
- most_common()을 이용하여 데이터의 개수가 많은 순의 리스트를 구하여 가장 빈도가 높은 문자열을 출력하였다.
ex) [('top', 4), ('kimtop', 1)]
Python Code
from collections import Counter n = int(input()) books = [] for _ in range(n): books.append(input()) books.sort() # 문자열을 사전 순으로 정렬 cnt = Counter(books) print(cnt.most_common(n=1)[0][0]) # 가장 많은 개수의 데이터의 key 출력
Reference
https://www.acmicpc.net/problem/1302
1302번: 베스트셀러
첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고
www.acmicpc.net
'Algorithm' 카테고리의 다른 글
LRU(Least Recently Used) 알고리즘 (0) 2020.10.07 [Python] 병합 정렬(merge sort) (0) 2020.05.15 [Python] 삽입 정렬(Insertion sort) (0) 2020.03.26 [Python] 선택 정렬(selection sort) (0) 2020.03.18 [Python] 버블 정렬(Buble sort) (0) 2020.03.15