Skip to content

Commit 6650fa1

Browse files
committed
[BOJ] 9655 돌 게임 (S5)
1 parent 5ef2eca commit 6650fa1

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

심수연/6주차/260202.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# https://www.acmicpc.net/problem/9655
2+
3+
import sys
4+
input = sys.stdin.readline
5+
6+
N = int(input())
7+
8+
# SK이 무조건 먼저 시작
9+
# N = 1: 1 -> SK
10+
# N = 2: 1 1 -> CY
11+
# N = 3: 1 1 1 -> SK or 3 -> SK
12+
# N = 4: 1 1 1 1 -> CY, 1 3 -> CY, 3 1 -> CY
13+
# N = 5: 1 1 1 1 1 -> SK, 1 1 3 -> SK, 1 3 1 -> SK, 3 1 1 -> SK
14+
# => N = 5 에서, 상근이가 1개 먼저 가져가면 N = 4 랑 같고, 3개 먼저 가져가면 N = 2 랑 같음
15+
# N = 6: 1 1 1 1 1 1 -> CY, 1 1 1 3 -> CY, 1 1 3 1 -> CY, 1 3 1 1 -> CY, 3 1 1 1 -> CY, 3 3 -> CY
16+
# => N = 6 에서, 상근이가 1개 먼저 가져가면 N = 5 랑 같고, 3개 먼저 가져가면 N = 3 랑 같음
17+
# => [N - 1] 의 반대, [N - 3]의 반대
18+
# 홀수면 SK, 짝수면 CY 이 이기는 문제지만,, DP로 해보자면,
19+
20+
dp = [''] * (N + 1)
21+
22+
dp[1] = 'SK'
23+
if N >= 2:
24+
dp[2] = 'CY'
25+
if N >= 3:
26+
dp[3] = 'SK'
27+
28+
for i in range(4, N + 1):
29+
if (dp[i - 1] == 'SK' and dp[i - 3] == 'SK'):
30+
dp[i] = 'CY'
31+
else:
32+
dp[i] = 'SK'
33+
34+
print(dp[-1])

0 commit comments

Comments
 (0)