From 1cef43de5a365136c285ca1c9e394dc9f202779d Mon Sep 17 00:00:00 2001 From: jo Date: Mon, 18 Mar 2024 22:56:55 +0900 Subject: [PATCH] =?UTF-8?q?BOJ2644=5F=EB=8F=8C=5F=EA=B2=8C=EC=9E=84=5F?= =?UTF-8?q?=EC=8B=A4=EB=B2=845=5F=EC=A1=B0=EC=9E=AC=EC=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5_\354\241\260\354\236\254\354\235\200.py" | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 "study/baekjoon/week7/BOJ9655_\353\217\214_\352\262\214\354\236\204/BOJ9655_\353\217\214_\352\262\214\354\236\204_\354\213\244\353\262\2045_\354\241\260\354\236\254\354\235\200.py" diff --git "a/study/baekjoon/week7/BOJ9655_\353\217\214_\352\262\214\354\236\204/BOJ9655_\353\217\214_\352\262\214\354\236\204_\354\213\244\353\262\2045_\354\241\260\354\236\254\354\235\200.py" "b/study/baekjoon/week7/BOJ9655_\353\217\214_\352\262\214\354\236\204/BOJ9655_\353\217\214_\352\262\214\354\236\204_\354\213\244\353\262\2045_\354\241\260\354\236\254\354\235\200.py" new file mode 100644 index 0000000..e3de401 --- /dev/null +++ "b/study/baekjoon/week7/BOJ9655_\353\217\214_\352\262\214\354\236\204/BOJ9655_\353\217\214_\352\262\214\354\236\204_\354\213\244\353\262\2045_\354\241\260\354\236\254\354\235\200.py" @@ -0,0 +1,28 @@ +n = int(input()) + +# 각 상태에 대해 승리 여부를 저장하는 배열 +# 초기값은 -1로 설정(미정) +win = [-1] * (n+1) + +# 초기 상태 설정 +# 1개의 돌이 남았을 때는 현재 플레이어가 승리(SK) +# 2개의 돌이 남았을 때는 다음 플레이어가 승리(CY), 현재 플레이어는 패배 +# 3개의 돌이 남았을 때는 현재 플레이어가 승리(SK) +win[1] = 1 # SK 승리 +win[2] = 0 # CY 승리 +win[3] = 1 # SK 승리 + +# 동적 프로그래밍을 사용하여 나머지 상태 계산 +for i in range(4, n+1): + # 현재 플레이어가 이기는 조건: + # 이전 상태(i-1 또는 i-3) 중 하나라도 다음 플레이어가 이기는 경우(= 현재 플레이어가 해당 돌을 가져가면 승리) + if win[i-1] == 0 or win[i-3] == 0: + win[i] = 1 # 현재 플레이어(SK) 승리 + else: + win[i] = 0 # 다음 플레이어(CY) 승리 + +# 결과 출력 +if win[n] == 1: + print("SK") +else: + print("CY")