※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 25592번 문제인 바둑돌 게임이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/25592
25592번: 바둑돌 게임
첫 번째 줄에 바둑돌 무더기에 있는 바둑돌의 개수를 의미하는 정수 $N$ $(1 \leq N \leq 100\,000)$이 입력된다.
www.acmicpc.net
직접 게임의 상황을 시뮬레이션을 돌려 문제를 해결해보자.
매 차례마다 들고 가는 바둑돌의 개수가 1씩 증가하므로, 각 차례마다 들고가는 바둑돌의 개수를 나타내는 변수 cnt를 만들어 루프를 한번 돌 때마다 1씩 증가하게 구현하는 것으로 문제를 편하게 해결할 수 있다.
이번 차례에 들고가야 하는 바둑돌의 개수가 홀수인지 짝수인지를 이용하면 이번 차례가 푸앙이의 차례인지 여부를 쉽게 계산해낼 수 있다.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int cnt = 1;
int N; cin >> N;
while (N >= cnt) {
N -= cnt;
cnt++;
}
if (cnt & 1) cout << cnt - N;
else cout << 0;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 25594 // C++] HG 음성기호 (1) | 2022.10.15 |
---|---|
[BOJ 25593 // C++] 근무 지옥에 빠진 푸앙이 (Small) (0) | 2022.10.14 |
[BOJ 25591 // C++] 푸앙이와 종윤이 (0) | 2022.10.12 |
[BOJ 15510 // C++] League of Overwatch at Moloco (Easy) (0) | 2022.10.11 |
[BOJ 15511 // C++] League of Overwatch at Moloco (Hard) (0) | 2022.10.10 |