
처음에는 그리디를 이용해 풀었는데 DP로도 풀이가 가능하다.
시간복잡도: O(N), 공간복잡도: O(1)
import java.util.*;
import java.io.*;
class Main {
public static void main (String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int count = 0;
int n = Integer.parseInt(br.readLine());
while(n>0){
if(n>=3) n-=3;
else n--;
count++;
}
System.out.println((count%2)==0 ? "CY" : "SK" ) ;
}
}

import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] dp = new int[1001];
dp[1] = 1;
dp[2] = 2;
dp[3] = 1;
for (int i = 4; i <= n; i++) {
dp[i] = Math.min(dp[i-1],dp[i-3]) + 1;
}
if (dp[n] % 2 == 0) {
System.out.print("CY");
} else {
System.out.print("SK");
}
}
}
안녕하세요~! 백준 푸시느라 고생많으셨습니다. 혹시 백준에서 푼 문제를 효율적으로 복습하고 정리하는 데 관심 있으시다면, https://mycodingtest.com 서비스를 한번 이용해보세요! 제가 진행한 개인 프로젝트인데 벨로그에서 백준 푸시는 분들께 댓글로 이렇게 홍보를 하고있습니다. 코테 준비에 도움이 되면 좋겠습니다 😊