Kim Seon Deok

[백준]1302 베스트셀러 본문

python/Algorithm

[백준]1302 베스트셀러

seondeok 2022. 1. 8. 22:40

https://www.acmicpc.net/problem/1302

 

1302번: 베스트셀러

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

www.acmicpc.net

<문제 요약>

1.하루동안 팔린 책의 개수 N이 주어짐

2.N만큼 책의 제목을 입력으로 받음

3.가장 많이 팔린 책의 제목을 출력

4.가장 많이 팔린 책이 여러개일 경우 사전순으로 가장 앞서는 제목을 출력

 

N = int(input())## 오늘 하루 동안 팔린 책의 개수
book = []  # 팔린 책 제목을 담을 빈 리스트

for i in range (0,N):
  
  book.append(input())
# print(book)

frequency = []  # 책 제목마다의 빈도수를 담을 리스트

for j in range(0,N):

  
  frequency.append(book.count(book[j]))

max_book = [] # 빈도수가 최대인 인덱스만 담을 리스트
for k in range(0,N):
  if book.count(book[k]) == max(frequency):
    max_book.append(book[k])


max_book.sort()  # 사전순으로 정렬
print(max_book[0])  # 맨 첫번째 인덱스를 출력

 

<문제 접근>

1.책 제목을 담을 빈 book 리스트를 생성 >> for문으로 append

4.책 제목마다 빈도수를 담을 frequency 리스트를 생성

ex) 책 제목 N = 6, book = [a, a, a, b, b,b, c] , frequency = [3,3,3,3,3,1]

5.빈도수가 최대인 인덱스만 담을 max_book 리스트를 생성

max_book = [3,3,3,3,3]

6. sort로 정렬 후 맨 첫번째 인덱스를 출력

'python > Algorithm' 카테고리의 다른 글

[백준] 1244 스위치 켜고 끄기  (0) 2022.01.14
[백준] 9012 - 괄호  (0) 2022.01.14
[백준]1158 요세푸스 문제  (0) 2022.01.08
[백준] 1343번 폴리오미노  (0) 2022.01.06
[코드업] [기초-리스트] 성실한 개미  (0) 2022.01.06
Comments