컴굥일지

[BOJ/백준 9655][C++] 돌 게임 본문

알고리즘/코테 문제

[BOJ/백준 9655][C++] 돌 게임

gyong 2022. 3. 17. 05:29
반응형

문제

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

백준 9655

 

문제 내용

상근이와 창영이가 번갈아가며 돌을 가져가는데, 한 번에 1개 또는 3개를 가져갈 수 있다.

마지막 돌을 가져가는 사람이 이기는 게임이다.

누가 이기는지 구하면 된다.

 

문제 풀이

규칙만 알면 매우 쉬운 문제이다.

 

돌의 개수에 따라 규칙을 찾아보자

n=1: 상근이가 먼저 가져가므로 상근이가 이긴다.

n=2: 상근(1), 창영(1) 이므로 창영이가 이긴다.

n=3: 상근(3) 이므로 상근이가 이긴다.

n=4: 상근(3), 창영(1) 이므로 창영이가 이긴다.
(1 3 또는 1 1 1 1 이어도 창영이가 이긴다.)

n=5: 상근(3), 창영(1), 상근(1) 이므로 상근이가 이긴다.
(1 3 1 또는 1 1 3 또는 1 1 1 1 1 이어도 상근이가 이긴다.)

n=6: 상근(3), 창영(3) 이므로 창영이가 이긴다. 
(3 1 1 1 또는 1 3 1 1 또는 1 1 3 1 또는 1 1 1 3 또는 1 1 1 1 1 1 이어도 창영이가 이긴다.)

 

1 또는 3을 택할 수 있기는 하지만 1을 선택하든 3을 선택하든 결과는 달라지지 않는다.

n이 홀수이면 상근이가, n이 짝수이면 창영이가 이긴다.

 

코드

#include <iostream>
using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	//입력
	int n;
	cin >> n;
	
	//문제 해결 및 결과 출력
	if (n % 2 == 0) cout << "CY\n";
	else cout << "SK\n";
}

 

반응형
Comments