본문 바로가기
Algorithm

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

by jangThang 2022. 6. 16.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    11652번: 카드

    준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     입력된 숫자의 개수를 세고, 최빈값을 출력하는 문제입니다.

     

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

     위 문제의 풀이처럼, 딕셔너리를 구현해서 직접 개수를 셀 수도 있습니다. 이 문제에서는 파이썬의 Counter 함수를 사용해서 풀이하겠습니다.

     

     

     

    3. 코드

    from collections import Counter
    import sys
    input = sys.stdin.readline
    
    # 입력
    N = int(input())
    numlist = []
    
    for _ in range(N):
        numlist.append(int(input()))
    
    # 개수 세기
    counting = Counter(numlist).most_common()
    max_freq = counting[0][1]  # 최빈값의 빈도
    res = counting[0][0]  # 최빈값
    
    for num, freq in counting:
        if freq == max_freq and num < res:
            res = num
    print(res)

     Counter(lst).most_common()은 lst 내 항목 개수를 세서, 빈도 수가 높은 항목순으로 항목과 빈도를 저장합니다.

     이 문제에서는 빈도가 같은 경우, 작은 숫자를 출력해야 합니다. 따라서 빈도가 같은 숫자 중에서 작은 숫자를 찾아서 출력합니다.

     

    star가 되고나서 Tistory

    반응형

    댓글