본문 바로가기
Problem Solving/백준

백준 11652 카드 [파이썬, 자료 구조, 정렬, 해시를 사용한 집합과 맵]

by JC_ 2023. 3. 22.
 

11652번: 카드

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

www.acmicpc.net

n = int(input())                    # 가지고 있는 카드의 수를 받아온다.

n_list = []                         
for i in range(n):                      
    n_list.append(int(input()))     # n_list에 카드들을 담는다.
n_list.sort()                       # n_list를 오름차순으로 정렬해주고
n_set = set(n_list)                 # 중복을 제거해주기 위해 n_set를 생성한다.

n_dic = {}
for n in n_set:                     # n_set의 값들로 key를 만들고
    n_dic[n] = 0                    # value는 0으로 만들어준다.

for n in n_list:                    # n_list를 순회하면서
    if n in n_dic:                  # n_dic에 값이 있으면
        n_dic[n] += 1               # += 1 로 숫자를 세어준다.
print(max(n_dic, key=n_dic.get))    # 최대값을 뽑아낸다.

댓글