728x90
입력이 1조까지 받으므로 하나 하나 계산을 할 경우 시간초과가 발생합니다.
1개 4개를 가져가는 경우에 대한 규칙을 찾아보았습니다.
먼저 DP를 사용해서 1, 4개를 가져가는 경우에 대해서 결과값을 찍어보았습니다.
그 결과 1 0 1 1 0 이 반복해서 나오는것을 알 수 있었습니다.
그 후 16을 포함해서 가져가는 경우에 대해서 결과값을 찍어보았습니다.
결과는 위와 마찬가지로 1 0 1 1 0이 반복해서 나왔습니다.
4의 배수이므로 모든 결과가 같을 것이라 생각해서 1 0 1 1 0을 담은 배열을 만들어주었습니다.
입력 받은 값을 모듈러 연산을 해서 위의 배열 값을 출력해주었습니다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
static long n;
static int[] ans = new int[7];
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
n = Long.parseLong(br.readLine()) - 1;
ans[0] = 1;
ans[1] = 0;
ans[2] = 1;
ans[3] = 0;
ans[4] = 1;
if(n < 3){
bw.write(((n%2==0)?1:0)==1?"SK":"CY");
} else {
n -= 3;
n %= 5;
bw.write(ans[(int) n]==1?"SK":"CY");
}
bw.close();
}
}
'알고리즘' 카테고리의 다른 글
[JavaScript] 프로그래머스 - 파괴되지 않은 건물 (0) | 2023.02.18 |
---|---|
[Java] 백준 3040번 백설 공주와 일곱 난쟁이 (0) | 2023.02.17 |
[Java] 백준 9660번 돌 게임 6 (0) | 2023.02.17 |
[Java] 백준 9659번 돌 게임 5 (0) | 2023.02.17 |
[Java] 백준 9658번 돌 게임 4 (0) | 2023.02.17 |