백준 11652 - 카드 (Python)

2024. 2. 12. 06:27알고리즘

문제

https://www.acmicpc.net/problem/11652

 

11652번: 카드

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

www.acmicpc.net

풀이

from collections import Counter
a = Counter([int(input()) for i in range(int(input()))])
b = sorted(a.items(),key= lambda x:(-x[1],x[0]))
print(b[0][0])

파이썬의 collections 패키지의 Counter를 사용했다

Counter를 사용하면 리스트에 대하여 리스트에 있는 각 원소를 key로 개수를 value로 가지는 딕셔너리가 나온다.

해당 딕셔너리를 value의 내림차순, key의 오름차순의 우선순위로 정렬해주고 맨 앞의 숫자를 출력해주면 된다.

 

Collections 패키지를 검색하다가 Counter에 대해 알게되었는데 상당히 유용하게 쓰일 것 같다.