문제
가지고 있는 숫자 카드 중 가장 많은 것을 찾아라.
가장 많이 가지고 있는 정수가 여러 가지면, 작은 것을 출력하라.
풀이
dictionary를 사용했다.
숫자카드의 정수를 key로, 개수를 value로 하여 dictionary에 있으면 개수에 1을 더하고 없으면 key값을 추가해 value를 1로 둔다.
첫번째 정렬기준은 개수(내림차순), 두번째 정렬기준은 정수(오름차순)이다.
key=lambda x로 이를 구현하고 맨 앞값의 key값을 출력하면 된다.
코드
import sys
input=sys.stdin.readline
counter={}
n=int(input())
for _ in range(n):
i=int(input())
if i in counter:
counter[i]+=1
else:
counter[i]=1
sort_c=sorted(counter.items(), key=lambda x: (-x[1],x[0]))
print(sort_c[0][0])
'BOJ > Python' 카테고리의 다른 글
[BOJ/백준] 10820 - 문자열 분석 (Python) (0) | 2025.02.06 |
---|---|
[BOJ/백준] 10866 - 덱 (Python) (0) | 2025.02.06 |
[BOJ/백준] 10825 - 국영수 (Python) (0) | 2025.02.05 |
[BOJ/백준] 10844 - 쉬운 계단 수 (Python) (0) | 2025.02.05 |
[BOJ/백준] 9095 - 1, 2, 3 더하기 (Python) (0) | 2025.02.02 |