문제
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include<iostream>
constexpr int MAX_N = 1000;
constexpr int SK = 0;
constexpr int CY = 1;
int main() {
int N;
std::cin >> N;
int player = SK;
while (N > 0) {
if (N / 3 == 0) {
--N;
}
else {
N -= 3;
}
player = 1 - player;
}
if (player)
std::cout << "SK" << "\n";
else
std::cout << "CY" << "\n";
}
|
후기
알고리즘 게임 키워드가 있어서 한번 풀어봤다.
이 문제는 둘이 번갈아가면서 돌을 가져가는 간단한 게임이다. 비슷한 문제도 6개 정도 더 있다.
이 문제에서 1 또는 3개의 돌을 가져갈 수 있다 하였는데 N/3으로 나눠서 3개보다 작다면 1개씩 그 외에는 3개씩 가져가게 하면서 누가 승리를 하는지 판단하게 하였다.
출처 및 레퍼런스
문제 링크:https://www.acmicpc.net/problem/9655
'온라인 코딩 > 기타(Other)' 카테고리의 다른 글
[백준] 2884번 알람 시계 (0) | 2020.06.04 |
---|---|
[백준] 2480번 주사위 세개 (0) | 2020.04.28 |
[백준] 16165번 걸그룹 마스터 준석이 (0) | 2020.03.22 |
[백준] 17224번 APC는 왜 서브태스크 대회가 되었을까? (0) | 2020.03.19 |
[백준] 17389번 보너스 점수 (0) | 2020.03.18 |