(Java) 백준 9655번 - 돌 게임

코딩너구리·2026년 2월 18일

코딩 문제 풀이

목록 보기
225/266

https://www.acmicpc.net/problem/9655

문제

> 돌 게임은 두 명이서 즐기는 재밌는 게임이다.

> 탁자 위에 돌 N개가 있다.
> 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다.
> 마지막 돌을 가져가는 사람이 게임을 이기게 된다.

> 두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오.
> 게임은 상근이가 먼저 시작한다.

접근

상근이와 창영이는 돌을 1개 또는 3개 씩 가져갈 수 있다. 상근이가 1개를 가져가던 3개를 가져가던 돌의 개수는 홀수개고, 다음으로 창영이가 1개를 가져가면 2개 혹은 4개 혹은 6개가 총 가져가게 된다. 그럼 다음 또 상근이는 3개, 5개, 7개 9개를 가져가게 된다.
결론적으로 상근이는 홀수 번째 돌을 가져가고, 창영이는 짝수번째의 돌을 가져가게 된다. 따라서 돌의 개수가 홀수면 상근 승, 짝수면 창영 승이 된다.

문제해결

> N을 입력받고 그 수가 짝수인지 홀수인지 2로 나눈 나머지로 확인한다.
> 홀수라면 상근이 승 SK출력하고, 짝수라면 창영이 승 CY를 출력한다.

코드

import java.io.*;
import java.util.*;
import java.lang.*;

public class Main {
    //9655번 돌 게임
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static int N;
    public static void main(String[] args) throws IOException {
    N = Integer.parseInt(br.readLine());
    if(N % 2 != 0) System.out.print("SK");
    else System.out.print("CY");
    }
}

후기

DP를 사용하기 위해 규칙을 찾다가 문제가 1개 '또는' 3개라는걸 알고 바로 알아차렸다.

0개의 댓글