728x90
입력이 1조까지 받으므로 하나 하나 계산을 할 경우 시간초과가 발생합니다.
1개 3개 4개를 가져가는 경우에 대한 규칙을 찾아보았습니다.
먼저 DP를 사용해서 1, 3, 4개를 가져가는 경우에 대해서 결과값을 찍어보았습니다.
그 결과 1 0 1 1 1 1 0 이 반복해서 나오는것을 알 수 있었습니다.
해당 값을 배열에 넣고 입력받은 값을 7로 모듈러연산을 해준 후
해준 값을 배열 인덱스에 넣어서 출력해주었습니다.
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;
n %= 7;
ans[0] = 1;
ans[1] = 0;
ans[2] = 1;
ans[3] = 1;
ans[4] = 1;
ans[5] = 1;
ans[6] = 0;
bw.write(ans[(int) n]==1?"SK":"CY");
bw.close();
}
}
'알고리즘' 카테고리의 다른 글
[Java] 백준 3040번 백설 공주와 일곱 난쟁이 (0) | 2023.02.17 |
---|---|
[Java] 백준 9661번 돌 게임 7 (0) | 2023.02.17 |
[Java] 백준 9659번 돌 게임 5 (0) | 2023.02.17 |
[Java] 백준 9658번 돌 게임 4 (0) | 2023.02.17 |
[Java] 백준 17406번 배열 돌리기 4 (0) | 2023.02.16 |