💡문제접근
- 완벽하게 자신이 이기기 위한 방법으로 게임을 한다고 가정
- 규칙성을 하나하나 파악하여 코드를 작성
💡규칙성 파악
- 돌의 개수가 1개인 경우 : 상근이가 시작해서 1개를 가져가므로 창영의 승
- 돌의 개수가 2개인 경우 : 상근이와 창영이가 각각 1개씩 가져가므로 상근의 승
- 돌의 개수가 3개인 경우 : 상근이가 1개를 가져가면 나머지 2개를 하나씩 나눠가지므로 창영의 승
- 돌의 개수가 4개인 경우 : 상근이가 3개를 가져가면 나머지 1개를 창영이가 가지므로 상근의 승
- 돌의 개수가 5개인 경우 : 상근이가 4개를 가져가면 나머지 1개를 창영이가 가지므로 상근의 승
- 돌의 개수가 6개인 경우 : 상근이가 3개를 가져가면 나머지 3개를 1개씩 가지므로 상근의 승
- 돌의 개수가 7개인 경우 : 상근이가 4개를 가져가면 나머지 3개를 1개씩 가지므로 상근의 승
- 위의 7가지가 반복해서 나타나므로 나머지 연산을 통해서 값을 찾아 승자를 출력하면 된다.
💡코드(메모리 : 31388KB, 시간 : 48ms)
import sys
input = sys.stdin.readline
N = int(input())
temp = N % 7
if temp == 1 or temp == 3:
print("CY")
else:
print("SK")
💡소요시간 : 21m