본문 바로가기
Algorithm

[자료구조/해시맵] 백준 1302 베스트셀러 - 파이썬(Python)

by jangThang 2022. 6. 15.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    1302번: 베스트셀러

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

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     팔린 책 목록을 입력받고, 가장 많이 팔린 책 제목을 출력하는 문제입니다.

     

     

     

    3. 코드

    import sys
    input = sys.stdin.readline
    
    # 입력
    N = int(input())
    book_dict = {}
    
    for _ in range(N):
        book = input().rstrip()
    
        # 이미 등록된 책이면 1개 추가
        if book in book_dict:
            book_dict[book] += 1
    
        # 등록되지 않은 책이면 새로 등록
        else:
            book_dict[book] = 1
    
    # 판매량이 많은 순으로 정렬
    res = list(book_dict.items())
    res.sort(key=lambda x: (-x[1], x[0]))
    
    print(res[0][0])

     파이썬의 기본 자료구조인 '딕셔너리'를 이용해서 해시맵을 구현합니다.

     저는 딕셔너리로 책의 개수를 셌지만, 그냥 책 제목만 받은 뒤에 Count 하셔도 됩니다.

     

    2022.06.16 - [Algorithm] - [자료구조/해시] 백준 11652 카드 - 파이썬(Python)

    ( Counter 라이브러리를 사용한 풀이 )

     

    star가 되고나서 Tistory

    반응형

    댓글