백준 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에 대해 알게되었는데 상당히 유용하게 쓰일 것 같다.