컴굥일지
[BOJ/백준 9655][C++] 돌 게임 본문
반응형
문제
https://www.acmicpc.net/problem/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";
}
반응형
'알고리즘 > 코테 문제' 카테고리의 다른 글
[BOJ/백준 2580][C++] 스도쿠 (0) | 2022.03.21 |
---|---|
[BOJ/백준 9657][C++] 돌 게임 3 (0) | 2022.03.18 |
[BOJ/백준 20301][C++] 반전 요세푸스 (0) | 2022.03.16 |
[BOJ/백준 18115][C++] 카드 놓기 (0) | 2022.03.15 |
[BOJ/백준 14713][C++] 앵무새 (0) | 2022.03.14 |
Comments