[백준] 9657번 돌 게임 3

거북이·2023년 3월 19일
0

백준[실버3]

목록 보기
72/92
post-thumbnail

💡문제접근

  • 돌의 개수가 1~N개 사이가 주어졌을 때 두 사람 모두 자신이 이길 수 있도록 완벽한 플레이를 했다고 가정했을 때 누가 이기는지 경우를 따져보았다.
  • 표를 통해서 정리하면 다음과 같다.
돌의 개수N = 1N = 2N = 3N = 4N = 5N = 6N = 7
이기는 사람상근창영상근상근상근상근창영

💡코드(메모리 : 31256KB, 시간 : 44ms)

import sys
input = sys.stdin.readline

N = int(input())

dp = [0] * 1001
dp[1] = 1   # 상근이가 이기는 경우를 1, 창영이가 이기는 경우를 0으로 표시해줌
dp[3] = 1
dp[4] = 1
if N >= 5:
    for i in range(5, N+1):
        if not dp[i-1]:
            dp[i] = 1
        if not dp[i-3]:
            dp[i] = 1
        if not dp[i-4]:
            dp[i] = 1

if dp[N]:
    print("SK")
else:
    print("CY")

💡소요시간 : 17m

0개의 댓글