백준 문제풀이

백준 18937 - 왕들의 외나무다리 돌게임 [Python]

Vermeil 2021. 8. 19. 14:01

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

 

18937번: 왕들의 외나무다리 돌게임

길이 6짜리의 외나무다리에 흰 돌이 3번 칸에 있고, 검은 돌이 5번 칸에 있으면, 흰 돌은 1, 2, 4번 칸 중 하나로 이동할 수 있으며, 검은 돌은 4, 6번 칸 중 하나로 이동할 수 있다. 돌을 상대 돌로

www.acmicpc.net

외나무다리의 길이가 n이면, 그런디 수는 n - 2이다.

여기서 뒤로 가는 것은 승패에 영향을 끼치지 않으므로, 그냥 xor해주면 끝이다.

 

코드

bo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def ip(): return int(input())
def sp(): return str(input().rstrip())
 
def mip(): return map(int, input().split())
def msp(): return map(str, input().split().rstrip())
 
def lmip(): return list(map(int, input().split()))
def lmsp(): return list(map(str, input().split().rstrip()))
 
= ip()
= lmip()
ans = 0
for i in a:
    ans ^= i - 2
if sp() == "Whiteking":
    print("Whiteking" if ans else "Blackking")
else:
    print("Blackking" if ans else "Whiteking")
cs