알고리즘
백준 9656번 돌 게임 2 (JAVA)
박카스마시며코딩
2021. 11. 27. 16:40
https://www.acmicpc.net/problem/9656
9656번: 돌 게임 2
상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다.
www.acmicpc.net
dp로 문제 해결
true : SK 승리
false : CY 승리
현재 1개 가져가거나 3개 가져갔을 때 둘 다 이긴다면 이긴다. 라도 판단하였습니다.
그래서 dp[i-1]과 dp[i-3] 둘 다 false라면dp[i]를 true로 하였습니다.
package BOJ;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.function.Function;
public class BOJ_9656 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st= new StringTokenizer(br.readLine()," ");
Function<String,Integer> stoi = Integer::parseInt;
int n = stoi.apply(st.nextToken());
boolean [] dp = new boolean[n+5];
dp[1] = false;
dp[2] = true;
dp[3] = false;
for(int i = 4; i <= n ; i++){
if(!dp[i-1] && !dp[i-3]){
dp[i] = true;
}else{
dp[i] = false;
}
}
if(dp[n]){
System.out.println("SK");
}else{
System.out.println("CY");
}
}
}