니노니나니

[백준/18198번] Basketball One-on-One - B4/Python 본문

알고리즘/백준

[백준/18198번] Basketball One-on-One - B4/Python

SangJunni 2024. 5. 28. 23:30

https://www.acmicpc.net/problem/18198

문제

앨리스와 바바라는 퇴근 후에 친선 농구 게임을 몇 번 했고, 당신은 그들의 점수를 기록하기로 했습니다. 게임의 규칙은 간단했습니다:

각 플레이어가 성공적으로 슛을 넣으면 1점 또는 2점을 얻습니다; 한 플레이어가 11점을 먼저 획득하면 승리합니다, 단 한 가지 예외가 있습니다; 만약 점수가 10–10으로 동점일 경우, "2점 차이로 승리" 규칙이 적용됩니다: 다른 플레이어보다 최소 2점 앞서는 플레이어가 승리합니다. 예를 들어, 11–7, 9–11, 14–12는 가능한 최종 점수입니다 (하지만 14–13은 아닙니다).

앨리스 또는 바바라가 점수를 획득할 때마다, 당신은 A 또는 B(앨리스 또는 바바라의 득점을 나타냄)와 1 또는 2(득점한 점수)를 적었습니다. 앨리스와 바바라가 플레이한 게임의 기록이 이러한 형식으로 남아 있지만, 누가 각 게임을 이겼는지 기억하지 못합니다. 게임 기록을 통해 승자를 재구성할 수 있나요?

입력

입력은 한 줄로 구성되어 있으며 200자를 넘지 않습니다: 한 게임의 기록입니다. 기록은 단일 문자(A 또는 B)와 단일 숫자(1 또는 2)가 교대로 나열되며, 공백이나 기타 불필요한 문자는 포함되지 않습니다. 각 기록은 위에서 설명한 규칙에 따라 완료된 단일 게임의 올바른 득점 기록입니다.

풀이

h = list(input())
a,b = 0,0
for i in range(0,len(h),2):
    player,score = h[i],int(h[i+1])
    if player == 'A':
        a += score
    else:
        b += score
if a > b:
    print('A')
else:
    print('B')

해결방법

문제에서 설명한 대로 올바른 득점 기록만 주어지기 때문에 A와 B의 득점을 계산해서 높은 쪽을 승리한 것으로 판단하면 되는 문제.