백준 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
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바