728x90
돌 게임 6
문제
돌 게임은 두 명이서 즐기는 재밌는 게임이다.
탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개, 3개 또는 4개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다.
두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다.
입력
첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1,000,000,000,000)
출력
상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다.
게임 이론 문제 였긴 때문에 규칙을 찾기로 하였다.
그래서 1, 3, 4개를 선택할 수 있기 때문에 4 까지는 구해보았다.
그랬을 때 SK, CY, SK, SK 가 나왔다 그래서 N=5일 때는 N= 1, 2, 4 일 때에서 4개, 3개, 1개를 선택함으로써 N=5를 선택할 수 있기 때문에 해당 과정의 승패를 봤을 때 CY가 있기 때문에 5에서 SK가 이길 수 있는 방법이 있다.
6도 N=2, 3, 5 인 CY, SK, SK이기 때문에 SK가 이길 방법이 있다.
하지만 N=7 일때는 N=3, 4, 6가 SK, SK, SK이기 때문에 무조건 CY가 이긴다.
이렇게 해봤을 때 SK, CY, SK, SK, SK, SK, CY 가 반복이 된다.
그래서 N % 7이 2, 0일 때 CY이다.
import sys
input = sys.stdin.readline
N = int(input())
if N % 7 == 2 or N % 7 == 0:
print('CY')
else:
print('SK')
'@@@ 알고리즘 > 백준 스터디' 카테고리의 다른 글
1461(도서관) - 해결 (0) | 2021.11.14 |
---|---|
3107(IPv6) - 해결 (0) | 2021.11.14 |
16884(나이트 게임) - 해결 - 이유 찾음 (0) | 2021.11.07 |
17144(미세먼지 안녕!) - 해결 (0) | 2021.11.06 |
22965(k개의 부분 배열) - 참고 - 해결 (0) | 2021.11.04 |