CS/Algorithm & Data Structure

[BOJ] 1302 베스트셀러

Yeji Heo 2023. 7. 23. 18:08

책 이름별로 몇 권을 팔았는지 표시해야한다.

따라서 dictionary를 사용해서

key: 책 이름, value: 판매권수

기록하면 좋을 것 같았다.

 

1. 변수에 기록

d = dict()
max = 0
maxBook = ""

for _ in range(int(input())):
  book=input()
  if book in d:
    d[book] +=1
  else: d[book]=1

  if d[book]>max:
    max=d[book]
    maxBook=book
  elif d[book]==max:
    if book<maxBook: maxBook=book

print(maxBook)

책 이름이 입력될 때

그 이름의 key가 있으면 value(판매권수)에 1을 더해주고

없으면 하나 생성해서 1로 설정해준다.

 

그 후에 바로 그 key의 판매권수가 최대인지 아닌지 체크한다.

가장 많이 팔린 책이 여러 권이라면, 책 이름을 사전순으로 비교하여 maxBook에 기록해준다.

 

2. 변수에 기록(for문 쪼갬)

d = dict()
max = 0
maxBook = ""

for _ in range(int(input())):
  book=input()
  if book in d:
    d[book] +=1
  else: d[book]=1


for k, v in d.items():
  if v>max:
    max=v
    maxBook=k
  elif v==max:
    if maxBook>k: maxBook=k

print(maxBook)