https://www.acmicpc.net/problem/9655
문제
> 돌 게임은 두 명이서 즐기는 재밌는 게임이다.
> 탁자 위에 돌 N개가 있다.
> 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다.
> 마지막 돌을 가져가는 사람이 게임을 이기게 된다.
> 두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오.
> 게임은 상근이가 먼저 시작한다.
접근
상근이와 창영이는 돌을 1개 또는 3개 씩 가져갈 수 있다. 상근이가 1개를 가져가던 3개를 가져가던 돌의 개수는 홀수개고, 다음으로 창영이가 1개를 가져가면 2개 혹은 4개 혹은 6개가 총 가져가게 된다. 그럼 다음 또 상근이는 3개, 5개, 7개 9개를 가져가게 된다.
결론적으로 상근이는 홀수 번째 돌을 가져가고, 창영이는 짝수번째의 돌을 가져가게 된다. 따라서 돌의 개수가 홀수면 상근 승, 짝수면 창영 승이 된다.
문제해결
> N을 입력받고 그 수가 짝수인지 홀수인지 2로 나눈 나머지로 확인한다.
> 홀수라면 상근이 승 SK출력하고, 짝수라면 창영이 승 CY를 출력한다.
코드
import java.io.*;
import java.util.*;
import java.lang.*;
public class Main {
//9655번 돌 게임
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static int N;
public static void main(String[] args) throws IOException {
N = Integer.parseInt(br.readLine());
if(N % 2 != 0) System.out.print("SK");
else System.out.print("CY");
}
}

후기
DP를 사용하기 위해 규칙을 찾다가 문제가 1개 '또는' 3개라는걸 알고 바로 알아차렸다.