본문 바로가기
알고리즘/자료구조

[백준][Python] 1302번 베스트셀러

by 임짠짠 2022. 2. 24.
반응형
 

1302번: 베스트셀러

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

www.acmicpc.net

 

코드

import sys
book = dict()
n = int(input())
for _ in range(n):
    name = sys.stdin.readline().rstrip()
    if name in book:
        book[name] += 1
    else:
        book[name] = 1
max = 0
sbook = dict(sorted(book.items()))
for i in sbook:
    if (sbook[i]) > max:
        max = sbook[i]
        maxi = i
print(maxi)

 


<딕셔너리 정렬>

1. key를 기준으로 정렬(오름차순)

  • sorted(a.key())

       key만 정렬된 값 반환  ['a', 'c', 'e']

  • sorted(a.items())                                                                                                                           

       키를 기준으로 정렬하고 key와 value를 튜플로 묶어서 정렬된 값 반환  [('a',2), ('c',4), ('e'.2)] 

 

2. value를 기준으로 정렬

  • sorted(a.value())

 

3. 람다식을 이용하여 정렬

  • sorted(a.items(), key=lambda x: x[0])

       x[0]은 key값을 기준으로 정렬하는 것을 의미함

  • sorted(a.items(), key=lambda x: x[1]

       x[1]은 value값을 기준으로 정렬하는 것을 의미함

 

 * 내림차순으로 정렬하려면 sorted(a.key(), reverse=True) 와 같이 마지막에 reverse=True 옵션만 추가해주면 됨

 

반응형

댓글