[BOJ 1302] 베스트셀러 (Python)
[BOJ 1302] 베스트셀러 (Python)
풀이
문제의 포인트는 중복되는 데이터의 개수를 세준 후 데이터의 개수가 가장 많은 것을 추출하면 된다. 단, 데이터의 개수가 가장 많은 것이 여러 개일 경우에는 사전 순으로 오름차순 정렬 후 제일 앞의 제목을 반환하면 된다.
Python에는 리스트안의 데이터 개수를 빠르게 세도록 지원하는 계수기 도구인 collections 모듈의 Counter 클래스
가 있다.(Counter 클래스
를 잘 모르겠다면 클릭) 이를 활용하여 문제를 풀면 쉽게 풀 수 있었다. (Python은 쉬우면서도 굉장히 편리한 모듈을 제공한다고 생각한다.)
collections.Counter(데이터 개수 셀 리스트)
로 오늘 팔린 책의 제목과 개수를 구하며, 이에 대한 결과값은 Dictionary
자료형으로 데이터 개수가 가장 많은 것의 key값
을 뽑아내도록 하였다.
코드
import sys
import collections
input = sys.stdin.readline
N = int(input())
books = list(input().rstrip() for _ in range(N))
# 오늘 책이 몇 개씩 판매됐는지 정산해준다고 이해하면 쉽다.
counter = collections.Counter(books)
# 가장 많이 팔린 책 권수
maximum = max(counter.values())
ans = []
for key, value in counter.items():
# 가장 많이 팔린 책이 여러 개일 수도 있기에 조건문 작성
if value >= maximum:
maximum = value
ans.append(key)
ans.sort()
print(ans[0])
Author And Source
이 문제에 관하여([BOJ 1302] 베스트셀러 (Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@kimdukbae/BOJ-1302-베스트셀러-Python
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import sys
import collections
input = sys.stdin.readline
N = int(input())
books = list(input().rstrip() for _ in range(N))
# 오늘 책이 몇 개씩 판매됐는지 정산해준다고 이해하면 쉽다.
counter = collections.Counter(books)
# 가장 많이 팔린 책 권수
maximum = max(counter.values())
ans = []
for key, value in counter.items():
# 가장 많이 팔린 책이 여러 개일 수도 있기에 조건문 작성
if value >= maximum:
maximum = value
ans.append(key)
ans.sort()
print(ans[0])
Author And Source
이 문제에 관하여([BOJ 1302] 베스트셀러 (Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimdukbae/BOJ-1302-베스트셀러-Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)