※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 26424번 문제인 Coloring Game이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/26424
26424번: Coloring Game
John loves to play computer games. He recently discovered an interesting game. In the game there are $\mathbf{N}$ cells, which are aligned in a row from left to right and are numbered with consecutive integers starting from $1$. Initially, all cells are co
www.acmicpc.net
봇과 존의 행동에 따라 앞으로 칠할 수 있는 칸의 수가 어떻게 변하는지를 살펴보자.
봇은 항상 칠할 수 있는 가장 왼쪽 칸만을 골라 칠하므로 봇의 차례에는 앞으로 칠할 수 있는 칸의 수가 1 또는 2 감소할 수 있다.
존은 칠할 수 있는 곳을 적절하게 골라 칠할 수 있으므로 존의 차례에는 앞으로 칠할 수 있는 칸의 수가 1 또는 2 또는 3 감소할 수 있다.
따라서 만약 칸이 5개 이하로 남을 때까지 봇의 차례에는 앞으로 칠할 수 있는 칸의 수가 항상 2 감소하고 존의 차례에는 항상 3 감소하게끔 두 플레이어가 행동할 수 있다면 이 때 봇이 얻을 수 있는 점수가 최소화될 것이다. 이러한 전략은 항상 존재하는데, 이 방법을 찾는 것은 어렵지 않으므로 이를 찾아보는 것은 읽는이들에게 남긴다.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int T, N;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> T;
for (int t = 1; t <= T; t++) {
cin >> N;
cout << "Case #" << t << ": " << (N - 1) / 5 + 1 << '\n';
}
}
'BOJ' 카테고리의 다른 글
[BOJ 14670 // C++] 병약한 영정 (0) | 2024.03.04 |
---|---|
[BOJ 16506 // C++] CPU (0) | 2024.03.03 |
[BOJ 29812 // C++] 아니 이게 왜 안 돼 (0) | 2024.03.01 |
[BOJ 24504 // C++] blobcry (1) | 2024.02.29 |
[BOJ 9344 // C++] 도로 (1) | 2024.02.28 |