본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬] 24175번 Tokyo2020

by 현장 2024. 2. 3.

-Code

from collections import defaultdict

while True:
    n = int(input())

    if n == 0:
        break

    medal_cnt = defaultdict(int)
    gold_medal_cnt = defaultdict(int)

    for _ in range(n):
        year, event, medal_color = input().split()

        medal_cnt[year] += 1

        if medal_color == "Gold":
            gold_medal_cnt[year] += 1

    res = [0, 0]
    max_gold = 0

    for t in sorted(gold_medal_cnt.items()):
        year = t[0]
        if max_gold < gold_medal_cnt[year]:
            max_gold = gold_medal_cnt[year]
            res[0] = year

    max_medal = 0
    for t in sorted(medal_cnt.items()):
        year = t[0]
        if max_medal < medal_cnt[year]:
            max_medal = medal_cnt[year]
            res[1] = year

    print(*res)

더 좋은 코드가 있을 거 같고 원래 더 길었는데 defaultdict를 알게되서 더 줄일 수 있게 되었습니다. defaultdict을 사용하면 자동으로 주어진 key값을 초기화 해주어서 해당 부분의 if문을 삭제할 수 있어서 사용하게 되었습니다.