[백준] #1302 베스트셀러 python
2023. 3. 27. 18:00
https://www.acmicpc.net/problem/1302
📕 설명 📕
python의 Counter library를 사용하여 풀이했다.
book_str list에 해당 문자열들을 넣고, 해당 문자열들에 대한 가장 많이 팔린 책들의 값을 most_sold_count에,
most_sold_book_list에 most_sold_count 값을 가지는 문자열이 여러 개가 있을 경우를 감안하여 list로 생성하여 반영하였다.
그리고 iteration을 통해서 풀이를 완료하였다.
사실, for 문에 Counter의 most_common(n=?) 로 설정하려고 하였지만, 예제 case에 모두 같은 경우로 most_sold_count이 같은 문자열이 많은 경우를 감안하여 넣지 않았다.
출력은 정렬을 통해 뽑아내었다.
🧑🏻💻 나의 풀이 🧑🏻💻
from collections import Counter
book_str = [input() for _ in range(int(input()))]
# Iterate through counted values through Counter library.
most_sold_book_list = []
most_sold_count = Counter(book_str).most_common(n=1)[0][1]
for book_name in Counter(book_str):
if most_sold_count == Counter(book_str)[book_name]:
most_sold_book_list.append(book_name)
most_sold_count = Counter(book_str)[book_name]
print(sorted(most_sold_book_list)[0])
'Programming > Algorithm' 카테고리의 다른 글
[백준] #1094 막대기 python (0) | 2023.03.29 |
---|---|
[백준] #1522 문자열 교환 python (0) | 2023.03.28 |
[백준] #24267 알고리즘 수업 - 알고리즘의 수행 시간 6 (0) | 2023.03.27 |
[백준] #24266 알고리즘 수업 - 알고리즘의 수행 시간 5 (0) | 2023.03.26 |
[백준] #24265 알고리즘 수업 - 알고리즘의 수행 시간 4 (0) | 2023.03.25 |