Algorithm/BOJ

[백준 12107] 약수 지우기 게임 1

giiro 2020. 10. 5. 22:31

문제

www.acmicpc.net/problem/12107

 

12107번: 약수 지우기 게임 1

N=4인 경우, A는 처음에 4,2,1을 지운다. 칠판에 남은 수는 3으로, B는 3을 지울 수밖에 없어 패배한다.

www.acmicpc.net

 

문제 풀이

 

모든 수의 약수인 1을 제외한 N-1개의 수로 게임을 진행했을 때의 결과로 N개의 수를 뽑는 상황을 생각해보면 아래와 같습니다.

 

 1. N - 1개의 수로 게임했고, 마지막 순서가 상대(B)에게 갈 때

  • A가 처음 뽑은 수의 약수에 1을 포함한다면 똑같이 마지막 순서가 상대에게 가므로 (A)승리

2. N - 1개의 수로 게임했고, 마지막 순서가 나(A)에게 올 때

  • A가 처음 순서에 1만 집고 시작하면 마지막 순서가 상대에게 가므로 (A)승리

3. 따라서 N이 1인 경우에만 A가 패배하고 나머지는 전부 A가 승리합니다.

 

코드

#include <bits/stdc++.h>
using namespace std;

int n;

int main() {
	cin.tie(NULL); cout.tie(NULL);
	ios_base::sync_with_stdio(false);

	cin >> n;
	if (n == 1) cout << "B";
	else cout << "A";
}