문제 링크 (opens new window)

# 풀이

  1. DP풀이
  2. 게임 횟수가 짝수냐 홀수냐에 따라 승자가 결정되는 구조를 먼저 알고 있어야 한다.
  3. i번째 돌을 취하기까지 게임 횟수를 구하기 위해 DP를 사용한다
import Foundation

let N = Int(readLine()!)!
var dp: [Int] = .init(repeating: 0, count: 1001)
dp[0] = 0
dp[1] = 1
dp[2] = 2

if N < 3 {
    if dp[N] % 2 == 0 {
        print("CY")
    } else {
        print("SK")
    }
    exit(0)
}

for i in 3...N {
    dp[i] = min(dp[i-1] + 1, dp[i-3] + 1)
}

if dp[N] % 2 == 0 {
    print("CY")
} else {
    print("SK")
}