BOJ/Python

[BOJ/백준] 18198 - Basketball One-on-One (Python)

tjdms4327 2024. 8. 29. 13:30

문제 링크

A와 B 중 먼저 11점을 달성하거나 경기가 끝났을 때 더 높은 점수를 갖는 사람이 이기는 게임이다.

둘 다 10점인 경우에는 듀스 룰을 적용한다.

 

11점을 기본값으로 잡고 각자 얻은 점수를 빼서 먼저 0이 되는 사람이 이긴다고 본다.

10점 이상이고 둘의 값이 같은 경우, 즉 만들어둔 리스트의 값이 모두 1일 때, 

듀스 룰을 적용하여 2점 더 얻는 것으로 한다.

시합이 끝나기 전에 11점, 즉 0이 된 사람이 있으면 for문을 종료하고 winner를 출력한다.

시험이 끝나고도 11점이 되지 못한다면 둘 중 점수가 높은 사람, 즉 리스트 값이 작은 사람이 이긴다.

win=input()


score=[11,11]
winner=None
for i in range(0,len(win)-1,2):
    if win[i]=='A':
        score[0]-=int(win[i+1])
    else:
        score[1]-=int(win[i+1])
    
    if score[0]==1 and score[1]==1:
        score[0]+=2
        score[1]+=2
        
    if score[0]==0:
        winner='A'
        break
    if score[1]==0:
        winner='B'
        break

if winner:
    print(winner)
else:
    if score[0]<score[1]:
        print('A')
    else:
        print('B')