문제
풀이
- 수의 범위가 굉장히 크고, 갯수도 많기에 dictionary를 활용함.
- for문을 돌며 숫자가 key에 있으면 값을 1 더하고, 없으면 값을 새로 추가함.
- 문제에서 최댓값을 가진 정수가 여러개면 작은 것을 출력하라고 했기에 sorting 필요.
- 딕셔너리는 따로 sorting 할 방법이 없기에 딕셔너리 값을 tuple로 반환해주는 items함수 사용함.
- items를 sort함수와 lambda식을 이용하여 value는 내림차순, key 오름차순으로 정렬해줌.
코드
import sys
def card() :
n = int(sys.stdin.readline())
table = dict()
for _ in range(n) :
i = int(sys.stdin.readline())
if i in table.keys() :
table[i] += 1
else :
table[i] = 1
table = list(table.items())
table.sort(key = lambda x : (-x[1], x[0]))
print(table[0][0])
card()