Koala - 5기/코딩테스트 준비 스터디
백준 9657 with Python 돌 게임 3
이인직
2022. 1. 23. 23:23
풀이
n = int(input())
total = [0, True,False,True,True] + [0]*(n-4)
for _ in range(5,n+1):
if False in [total[_-1],total[_-3],total[_-4]]:
total[_]= True
else:
total[_]=False
if total[n]:
print("SK")
else:
print("CY")
c언어에서는 생각 조차 할 수 없었던 [0]*(n-4) 라는 표현을 구글링을 통해 알게 되었는데 파이썬은 내 생각보다 무지 대단한 놈 같다. 어쨋든 total 리스트는 본인 차례에 가져갈 수 있는 구슬의 개수에 따라 패배 혹은 승리가 결정되는 것을 미리 1,2,3,4개의 돌에 대한 승 패 값으로 지정해놓았다. 이 수보다 더 큰 돌의 개수의 경우에는 1,3,4를통해 true에 도달할 수 있다면 false 값을, false에 도달할 수 있다면 true값을 할당하는 알고리즘을 구상했다.