Koala - 7기/기초 알고리즘 스터디

[백준/python] 4494번 가위 바위 보?

알 수 없는 사용자 2022. 7. 10. 18:56

문제

가위 바위 보는 두 명이서 하는 게임이다. 보통 미리 정해놓은 수 만큼 게임을 하고, 많은 게임을 이긴 사람이 최종 승자가 된다.

가위 바위 보를 한 횟수와 매번 두 명이 무엇을 냈는지가 주어졌을 때, 최종 승자를 출력하는 프로그램을 작성하시오.

  • 바위는 가위를 이긴다.
  • 가위는 보를 이긴다.
  • 보는 바위를 이긴다.

입력

첫째 줄에는 테스트 케이스의 개수 t(0 < t < 1000)가 주어진다. 각 테스트 케이스의 첫째 줄에는 가위 바위 보를 한 횟수 n(0 < n < 100)이 주어진다. 다음 n개의 줄에는 R, P, S가 공백으로 구분되어 주어진다. R, P, S는 순서대로 바위, 보, 가위이고 첫 번째 문자는 Player 1의 선택, 두 번째 문자는 Player 2의 선택이다.

출력

각 테스트 케이스에 대해서 승자를 출력한다. (Player 1 또는 Player 2) 만약, 비겼을 경우에는 TIE를 출력한다.


코드

n=int(input())

while n:
    k=int(input())
    s1,s2=0,0
    for i in range(k):
        p1,p2=input().split()
        #player 1 win
        if (p1=='P' and p2=='R') or (p1=='S' and p2=='P') or (p1=='R'and p2=='S'):
            s1+=1
        elif (p2=='P' and p1=='R') or (p2=='S' and p1=='P') or (p2=='R'and p1=='S'):
            s2+=1
    if s1>s2:
        print('Player 1')
    elif s2>s1:
        print('Player 2')
    else:
        print('TIE')
    n-=1


문제풀이 

총 테스트 횟수를 N으로 받고 N이 0이 될때까지 while 문을 이용해 게임을 진행시킨다.

while 루프 안에 for 문을 이용해 각 테스트마다 가위바위보 게임 횟수를 받고 각 게임에서 승자에게 1점을 주었다.

for 루프가 끝나면 플레이어가 얻은 점수를 비교하여 그 테스트에서 승자를 출력하고 다음 테스트로 넘어간다.