티스토리 뷰
문제
https://www.acmicpc.net/problem/17080
17080번: 결함 게임
첫째 줄에 돌의 개수 N이 주어진다. (1 ≤ N ≤ 5,000,000)
www.acmicpc.net
문제 풀이
- 각 플레이어는 턴마다, 만약 현재 보드 위에 있는 돌탑 중 어딘가에 올릴 수 있는 돌이 남아있다면, 반드시 그러한 돌들 중 하나를 골라 올릴 수 있는 돌탑 중 원하는 돌탑 위에 올린다.
- 만약 어떤 돌탑에도 돌을 올릴 수 없다면, 남아있는 돌 중 아무거나 하나를 골라 보드 위에 새로운 돌탑의 바닥을 만든다.
- 모든 돌이 소진된 뒤, 돌탑의 개수가 홀수이면 선공이 이기며, 짝수이면 후공이 이긴다.
위 조건들을 생각하며 돌의 개수를 한 개씩 늘려보면 아래의 규칙을 찾을 수 있습니다.
1. k개의 돌을 둬서 후공이 이겼다면 (k + 1)개의 돌을 두면 선공이 이긴다 ( ∵ 선공이 1을 두고 후공이 남은 k개를 최선을 다해서 쌓아도 후공이 쌓은 돌탑의 개수는 짝수개이므로 전체 돌탑의 개수는 홀수)
2. 돌의 개수 3개를 시작으로 4개의 주기마다 후공이 승리함.
코드
#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 % 4 == 3) cout << 2;
else cout << 1;
}
'Algorithm > BOJ' 카테고리의 다른 글
[백준 19576] 약수 (0) | 2020.08.31 |
---|---|
[백준 19588] 상품권 준비 (0) | 2020.08.31 |
[백준 19591] 독특한 계산기 (0) | 2020.08.31 |
[백준 1662] 압축 (0) | 2020.08.31 |
[백준 17143] 낚시왕 (0) | 2020.08.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 표 편집
- 백준
- BFS
- 카카오 2020 인턴십
- 누적합
- 2022 카카오블라인드
- 카카오 2차코딩테스트
- 트리
- 프로그래머스
- 카카오 표 편집
- 2020 KAKAO BLIND RECRUITMENT
- 2021 KAKAO BLIND
- 프로그래머스 위클리 9주차
- 2021 카카오 블라인드
- 이분탐색
- 프로그래머스 월간코드챌린지
- 2022 KAKAO BLIND RECRUITMENT
- 투포인터
- 카카오 2021
- 유니온파인드
- 게임이론
- Kakaoblind
- 위클리 챌린지
- DP
- 파싱
- 2022 카카오 블라인드 코딩테스트
- 카카오 인턴십
- 시뮬레이션
- 동적계획법
- 구현
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 | 31 |
글 보관함