BoJ 3982 - Soccer Bets [with Python / 문제 한국어로 번역]

ssook·2023년 9월 6일
0

BoJ 문제기록

목록 보기
10/29
post-thumbnail

📍 문제

문제

FIFA 월드컵의 그룹 스테이지가 끝나고 16강으로 진출한 팀들이 결정되었습니다!
제 상사는 모든 경기를 분석하고 대회의 나머지 부분에 베팅을 한 후, 각 경기의 결과를 한 장의 종이에 적었습니다.
저의 일은 그의 베팅을 바로 베팅 가게로 가져가서 1,000달러를 거는 것이었습니다.
주머니에 이렇게 많은 현금을 가지고 있어 안 그래도 긴장하고 있었는데... 제가 서투른 바람에 넘어져서 베팅 관련된 정보가 적힌 종이의 내용이 섞였습니다!
그래서 어떤 베팅이 결승전이나 준결승과 관련이 있는지 전혀 모르는 상태입니다.

저는 제 상사를 실망시키기 싫어서 대회 우승팀에만 베팅을 하기로 결정했습니다.
내가 아는 것은 각 라운드에서 승리한 팀들(팀이 상대 팀보다 더 많은 골을 넣으면 팀이 이깁니다)이 다음 라운드로 진출하고, 다른 팀들은 대회에서 탈락한다는 것입니다.
준결승에 해당하는 팀 중 패배한 팀도 3위를 위한 경기에 참여합니다. 따라서 총 16 경기가 있습니다.

혹시 제 상사의 베팅을 기반으로 월드컵 우승팀이 누구인지 알려주실 수 있을까요?

입력

입력의 첫 줄은 테스트 케이스의 수 cc (1 ≤ cc ≤ 100)입니다.
각 테스트 케이스는 무작위 순서로 나열된 16개의 줄로 구성됩니다. 매치 설명은 다음과 같이 생겼습니다: t1t1, t2t2, g1g1, g2g2. t1t1t2t2는 팀의 이름입니다(정확히 세 개의 대문자로 약어 표기되어 있습니다.),
g1g1g2g2 (0 ≤ g1g1, g2g2 ≤ 10; g1g1g2g2)은 두 팀의 골입니다.

출력

각 테스트 케이스마다,항상 정확한 내 상사의 분석을 기반으로 FIFA 월드컵에서 우승할 팀을 나타내는 한 줄을 출력해주세요.


📍 아이디어

진짜 단순 Dictionary 문제!

어느 한 팀이 이겼을 경우, Dictionary에서 키(이긴 팀 명)에 대한 값을 가져와 +1을 해주면 된다.
그 후 모든 경기가 끝나면 제일 높은 점수를 낸 팀을 출력하면 된다.


📍 통과 코드


t = int(input())

for _ in range(t):
    results = {}
    
    for _ in range(16):
        team1, team2, score1, score2 = input().split()
        score1 = int(score1)
        score2 = int(score2)

        if score1 > score2:
            results[team1] = results.get(team1, 0) + 1
        else:
            results[team2] = results.get(team2, 0) + 1

    winner = max(results, key=results.get)
    print(winner)

profile
개발자에서, IT Business 담당자로. BrSE 업무를 수행하고 있습니다.

0개의 댓글