https://www.acmicpc.net/problem/9655
문제
돌 게임은 두 명이서 즐기는 재밌는 게임이다.
탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다.
두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다.
입력
첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000)
출력
상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다.
풀이
두 사람이 "완벽"하게 플레이를 해야하는데 여기서 게임을 완벽하게 한다는게 어떤걸까 고민,,,
배스킨라빈스31 게임과 비슷한 전략으로
마지막 돌을 가지기 위해서는 반드시 앞에 3개의 돌을 건너뛴 돌을 내가 가지고 있어야 한다
하지만 돌을 2개 선택할 수는 없다
분명 어떤 알고리즘을 적용할 수 있겠지만,,, 말이지,,, 그냥 홀수면 선공이 이기고 홀수면 후공이 이기게 설계가 된 게임인거시다아
코드
#include<iostream>
using namespace std;
int main()
{
int N;
cin >> N;
if (N % 2 == 0)
{
cout << "CY";
}
else
{
cout << "SK";
}
}
'study > 백준' 카테고리의 다른 글
[백준] 11399. ATM : python (0) | 2022.06.12 |
---|---|
[백준] 17478. 재귀함수가 뭔가요? : python (0) | 2022.06.10 |
[백준] 1436. 영화감독 숌 : C++ (0) | 2022.03.07 |
[백준] 11719. 그대로 출력하기 2 : C++ (0) | 2022.03.06 |
[백준] 2609. 최대공약수와 최소공배수 : C++ (0) | 2022.03.04 |