문제
풀이
문제 분류가 다이나믹 프로그래밍으로 되어 있지만 규칙을 파악한다면 정말 간단하게 풀이 가능하다.
N=1일 때 상근이가 1개를 가져오면 무조건 승리하고, N=2일 때 상근이가 1개, 창영이가 1개를 가져올 수밖에 없으므로 창영이가 승리하며, N=3일 때는 상근이가 1개, 창영이가 1개, 상근이가 1개를 가져오거나 상근이가 3개를 가져올 수 있고 두 경우 모두 상근이가 승리한다. 이런 식으로 N을 증가시키며 계산해 보면, N이 홀수일 때는 상근이가, N이 짝수일 때는 창영이가 무조건 이긴다는 것을 알 수 있다.
전체 코드
import java.util.Scanner;
public class ex9655 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int N=scanner.nextInt();
if(N%2==0)
System.out.println("CY");
else {
System.out.println("SK");
}
}
입력이 하나뿐이라 scanner 사용하였다.
'백준' 카테고리의 다른 글
백준 13909: 창문 닫기(java, python) (0) | 2024.09.19 |
---|---|
백준 2003: 수들의 합(java) (0) | 2024.09.09 |
백준 18870: 좌표 압축(java) (0) | 2024.09.03 |
11659: 구간 합 구하기 4(java) (0) | 2024.09.02 |
백준 3477: 버그왕(java) (0) | 2024.08.31 |