프로그래밍/알고리즘 풀이
[수학] 돌 게임 (백준 9655번)
카카수(kakasoo)
2020. 3. 3. 23:41
반응형
갑자기 옛날 생각이 난다.
예전에 중학생 때, 교무실 앞에서 울고 있는 한 남자 아이가 있었다.
처음 보는 친구였지만, 그 친구가 우는 모습에 다가가서 무슨 일이냐고 물어봤다.
(그 때도 새삼 내가 착했다는 게 느껴진다, 나는 앞으로도 착하게 살고 싶다.)
"시험을 망했어."
그 친구가 얼마나 망했는지 몰라도, 이렇게 우는 걸 보니 노력에 결과가 따라오지 못한 듯 하였다.
당시 전교 17등이었던 내가, 그 아이를 위로하는 게 가증스러운 짓은 아닐까 염려되었지만,
나는 "너무 그러지마, 다음 번엔 더 잘 할 수 있을 거야." 라고, 조심스레 말을 골라냈다.
"몇 등이길래 그래?"
"2등."
"뭐?"
그렇다.
이 친구는, 전교 1등을 처음으로 놓친 탓에 울고 있던 거였다.
이 일로 면식이 생긴 나는 이 친구와 등산을 한 적이 있었는데,
산만 묵묵히 올라가는 게 심심해서 했던 것이 바로 이 돌 게임이었다.
(이야기 참 돌려서 한다.)
그 때 이 친구와 내가, 서로 더 많이 이기기 위해 이 게임의 필승 공식을 만들었는데... (아련)
근데 많이 틀렸다.
돌로 찍어버리고 싶다.
(죄 없는 자가 먼저 돌로 찍(?)어라. / "그럼 예수님이 집행하시면 되겠네요")
나는 완전히 이 문제가 베스킨**스 게임이라고 생각했는데,
돌을 1~3개 가져갈 수 있는 게 아니라 무조건 1개 아니면 3개만 가져갈 수 있다는 문제였다.
2개는 가져갈 수 없다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <iostream>
using namespace std;
// 후공이 이기는 경우를 생각하는 게 더 쉽기 때문에, 후공을 구한 후 역을 생각해보자.
int main(void)
{
int num;
cin >> num;
if (num % 2 == 1) cout << "SK";
else
cout << "CY";
}
// 돌이 1개면 후공이 질 수밖에 없다.
// 돌이 2개면 선공이 1개 가져갈 테니 후공이 질 수밖에 없다.
// 돌이 3개면 선공이 1개, 후공이 1개 가져갈 테니 질 수밖에 없다.
// 돌이 4개면 선공이 3개 가져갈 테니 후공이 질 수 밖에 없다.
// 돌이 4개면 선공이 1개, 후공이 1개, 선공이 1개 가져갈 테니 후공이 질 수밖에 없다.
// 고로 4나 5부터는 위의 경우의 수를 조합해서 이루어질 뿐이다.
// 선 후 선 후 선 후 선 후... 이기는 경우의 수가 홀짝으로 나온다.
|
반응형