Odds and Ends
백준 : 9655번 돌 게임 [파이썬, 실버5] 본문
문제
돌 게임은 두 명이서 즐기는 재밌는 게임이다.
탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다. 두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다.
입력
첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000)
출력
상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다.
예제 입력
5
예제 출력
SK
시작하는 사람이 정해져있고, 1개 혹은 3개만 가져갈 수 있다. (2개가 남았을 때 2개만 가져가지 못한다)
1일 때는 SK, 2일 때는 CY, 3일 때는 다시 SK, 4일 때는 CY가 이긴다.
==> n개가 있을 때 SK가 이기는 경우의 수는?
: 점화식으로 풀 수 있다. 1개 혹은 3개만 가져갈 수 있으므로 상대방의 선택지는 n-1 혹은 n-3이 될 것이다.
따라서 자신이 가져갈 수 있는 다음 경우의 수는 n-2, n-4, n-6 총 3가지가 될 것이다.
이렇게 내려가다 보면 SK는 n이 홀수 일 때 이길 수 있고, 짝수 일 때는 CY가 우승을 차지하게 된다.
n = int(input())
if n % 2 == 0:
print('CY')
else:
print('SK')
728x90
'코딩 테스트' 카테고리의 다른 글
백준 : 3048번 개미 [파이썬, 실버4, 사칙연산] (0) | 2022.08.01 |
---|---|
백준 : 15720번 카우버거 [파이썬, 실버5, 사칙연산] (0) | 2022.08.01 |
백준: 13301번 타일 장식물 [파이썬, 다이나믹 프로그래밍, 실버5] (0) | 2022.07.31 |
백준 : 11399번 ATM [파이썬, 정렬, 실버4] (0) | 2022.07.30 |
백준 : 1940번 주몽 [파이썬, 정렬, 실버4] (0) | 2022.07.30 |