티스토리 뷰

문제

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";
}

 

 

 

'Algorithm > BOJ' 카테고리의 다른 글

[백준 20055] 컨베이어 벨트 위의 로봇  (0) 2020.10.27
[백준 2887] 행성터널  (0) 2020.10.10
[백준 15927] 회문은 회문아니야!!  (0) 2020.10.05
[백준 2381] 최대거리  (0) 2020.10.05
[백준 5980] Corn Maze  (0) 2020.09.19
댓글