9658번: 돌 게임 4
문제 )
돌 게임은 두 명이서 즐기는 재밌는 게임이다.
탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개, 3개 또는 4개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 지게 된다.
두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다.
입력 :
첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000)
출력 :
상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다.
풀이)
기본적인 풀이는 돌 게임 3와 동일하나 마지막 돌을 가져가면 지게 되므로,
마지막 돌의 앞 돌을 가져가면 이길 수 있다.
따라서 돌 게임 3의 코드에서 n - 1을 출력해주면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
n = int(input())
dp = [-1] * (1010)
dp[0] = False
dp[1] = True
dp[2] = False
dp[3] = True
dp[4] = True
dp[5] = True
for i in range(4, n + 1):
if dp[i - 1] == True and dp[i - 3] == True and dp[i - 4] == True:
dp[i] = False
else:
dp[i] = True
if dp[n - 1]:
print("SK")
else:
print("CY")
|
cs |
출처 : https://www.acmicpc.net/problem/9658
9658번: 돌 게임 4
상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다.
www.acmicpc.net
'Develop > 백준 (python)' 카테고리의 다른 글
[백준] 2579번: 계단오르기 (python) (0) | 2022.04.04 |
---|---|
[백준] 1463번: 1로 만들기 (python) (0) | 2022.04.04 |
[백준] 9657번: 돌 게임 3 (python) (0) | 2022.04.04 |
[백준] 11727번: 2 x n 타일링 2 (python) (0) | 2022.04.04 |
[백준] 11726번: 2 x n 타일링 (python) (0) | 2022.04.03 |