관리 메뉴

JIE0025

[DP][실버5] 9655번 돌게임 - 파이썬(python) 본문

Algorithm/백준

[DP][실버5] 9655번 돌게임 - 파이썬(python)

Kangjieun11 2023. 2. 12. 17:33
728x90

 

 

문제

돌 게임은 두 명이서 즐기는 재밌는 게임이다.

탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다.

두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다.

 

 


💻 사고과정

 

 

💻 내가 쓴 정답코드

import sys
input = sys.stdin.readline

n = int(input())

dp = [0] * (1001)

if n<=3:
    result = 'SK' if n%2 == 1 else'CY'  
    print(result)
    exit()

dp[1] = 1 
dp[2] = 0
dp[3] = 1

for i in range(4, n+1):
    dp[i] = not dp[i-1] or not dp[i-3]

if dp[n]:
    print('SK')
else:
    print('CY')

 

 

 

💻 근데 사실 이렇게 할 필요가 없다. 

사고과정을 보다보면 -- 어차피 상근이가 게임을 시작하기 떄문에

n이 홀수이면 무조건 상근이가 이긴다는걸 파악할 수 있다. ㅋㅋㅋㅋㅋ

 

 

 

따라서 이런 코드도 정답이 될수있따.

 

n = int(input())

if n%2 == 0: 
    print('CY')
else: 
    print('SK')