문제
주사위 눈의 합이 가르키는 사람은 다음과 같이 정의된다.
- 1: 주사위를 굴린 사람
- 이후 반시계방향으로 수를 세어 나가며 다음 사람을 가리킴
- 마지막 플레이어까지 수를 세어 나갔으면 다시 주사위를 굴린 사람부터 수를 셈
두 개의 주사위를 두 번 굴린 결과가 주어졌을 때, 몇 번 플레이어가 진동이 되는가?
풀이
주사위를 던졌을 때 던진 사람을 포함해서 그 합만큼 반시계방향으로 세야 하므로
먼저 (현재 플레이어 번호-1)+(주사위 수의 합)을 구한다.
마지막 플레이어까지 셌으면 1번 플레이어로 돌아가서 다시 세므로 4로 나눈 나머지가 다음에 주사위를 던질 플레이어다.
중간 계산 과정에서는 상관없지만 마지막 플레이어를 구할 때 위 방식대로 계산하면 4번 플레이어를 구해야 할 때 0번 플레이어라고 나온다.
따라서 마지막 플레이어를 출력할 때 if문 처리를 하여 플레이어 번호가 0이 아니면 그대로, 0이면 4를 출력하면 된다.
코드
a,b=map(int, input().split())
c,d=map(int, input().split())
player2=((1-1)+(a+b))%4
player3=((player2-1)+(c+d))%4
print(player3 if player3!=0 else 4)
'BOJ > Python' 카테고리의 다른 글
[BOJ/백준] 1252 - 이진수 덧셈 (Python) (0) | 2025.05.14 |
---|---|
[BOJ/백준] 33162 - 散歩 (Walking) (Python) (0) | 2025.05.13 |
[BOJ/백준] 27222 - Штангист (Python) (0) | 2025.05.13 |
[BOJ/백준] 11034 - 캥거루 세마리2 (Python) (0) | 2025.05.13 |
[BOJ/백준] 17912 - License to Launch (Python) (1) | 2025.05.13 |