白駿-(#11652)


https://www.acmicpc.net/problem/11652
ジュンギュにはN枚のデジタルカードがある.数字カードには整数が書かれており、書かれた数字は-262-262以上、2622^{62}262以下です.
ジュンギュがカードを手に入れたとき、プログラムを書いて、あなたの最大の整数を求めてください.最大の整数が複数ある場合、出力は小さくなります.
Code 1
n = int(input())

cards = {}
max_cnt = 0
result = 2**62
for i in range(n):
    m = int(input())
    if m not in cards.keys():
        cards[m] = 0
    cards[m] += 1
    if max_cnt < cards[m]:
        max_cnt = cards[m]
        result = m
    if (max_cnt == cards[m]) and result > m:
        result = m

print(result)
Code 2
n = int(input())

cards = {}
for i in range(n):
    m = int(input())
    if m not in cards.keys():
        cards[m] = 0
    cards[m] += 1

result = sorted(cards.items(), key=lambda x: (-x[1], x[0]))
print(result[0][0])
リファレンス
上記の方法では、辞書をsorted()に並べ替えることもできる