백준 9656 돌 게임 2 JAVA 풀이 (게임이론, 시간복잡도)

2026. 3. 26. 20:45·코테(Solved.ac + Programmers)
728x90

🔗 문제 링크

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


📌 문제 개요

돌 N개가 주어지고,
한 번에 1개 또는 3개의 돌을 가져갈 수 있다.

마지막 돌을 가져가는 사람이 승리할 때,
상근(SK)과 창영(CY) 중 누가 이기는지 출력하는 문제이다.


📌 접근 방법

이 문제는 단순 구현이 아니라
게임 이론 + 패턴 찾기 문제이다.

작은 값부터 직접 경우를 나열하면 규칙이 보인다.


📌 핵심 아이디어

N 결과
1 CY
2 SK
3 CY
4 SK
5 CY
6 SK

결과가 반복된다

  • 홀수 → CY
  • 짝수 → SK

왜 이런 결과가 나오나?

  • 한 번에 1 또는 3을 가져가므로
  • 상대를 **불리한 상태(홀수)**로 넘기면 승리 가능
  • 짝수에서 시작하면 항상 이길 수 있음
  • 홀수는 상대가 유리

📌 전체 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());

        System.out.println(N % 2 == 0 ? "SK" : "CY");
    }
}

📄 정리

  • 게임 문제는 패턴 찾기가 핵심
  • 작은 값부터 직접 써보는 것이 가장 빠름
  • 이 문제는 짝수/홀수 패턴 문제
728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

백준 11931 수 정렬하기 4 JAVA 풀이 (정렬, 시간복잡도)  (0) 2026.03.28
백준 5635 생일 JAVA 풀이 (정렬, 시간복잡도)  (0) 2026.03.27
백준 2669 직사각형 네 개의 합집합의 면적 JAVA 풀이 (브루트포스, 구현, 시간복잡도)  (0) 2026.03.25
백준 13909 창문 닫기 JAVA 풀이 (수학, O(1))  (0) 2026.03.24
백준 8979 올림픽 JAVA 풀이 (정렬, 구현, 시간복잡도)  (0) 2026.03.23
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • 백준 11931 수 정렬하기 4 JAVA 풀이 (정렬, 시간복잡도)
  • 백준 5635 생일 JAVA 풀이 (정렬, 시간복잡도)
  • 백준 2669 직사각형 네 개의 합집합의 면적 JAVA 풀이 (브루트포스, 구현, 시간복잡도)
  • 백준 13909 창문 닫기 JAVA 풀이 (수학, O(1))
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN
      • 코테(Solved.ac + Programmers)
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    정처기
    코딩테스트
    백준
    프로그래머스
    피보나치
    실기
    브루트포스
    문자열
    자료구조
    알고리즘
    정보처리기사 실기 기출문제
    정처기오답노트
    정렬
    solved.ac
    백엔드개발자
    완전탐색
    springboot
    정처기실기
    기출문제
    배열
    수학
    level1
    시뮬레이션
    level0
    정보처리기사
    dp
    Level2
    java
    구현
    자바
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
백준 9656 돌 게임 2 JAVA 풀이 (게임이론, 시간복잡도)
상단으로

티스토리툴바