이 문제는 #2161 문제와 같은 구조로 푸셔도 되는 문제입니다. 최종 카드를 알아내기 위한 것입니다. 만약 N이 커진다면, 나머지 연산을 통해서 결과를 얻어야 하겠지만, 여기서는 신경쓰지 않아도 됩니다.

문제의 링크는 다음과 같습니다.
https://www.acmicpc.net/problem/2164
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
이 문제와 푸는 방법이 비슷한 #2161 카드 1 문제의 링크는 다음과 같습니다.
[C/C++] 백준 #2161 카드1(큐 자료구조)
이번 문제는 요세푸스(Josephus) 문제와 아주 유사합니다. 요세푸스 문제는 K번째를 제하는 형태이지만, 이 문제에서는 먼저 제하고 시작하는 것이 좀 다릅니다. 요세푸스 (N, 2) 문제와 비숫합니다.
sdev.tistory.com
이번 문제는
제가 작성한 소스입니다.
//------------------------------------------------
// baekjoon #2164
// - by Aubrey Choi
// - created at 2019-07-03
//------------------------------------------------
#include <stdio.h>
#include <queue>
int main()
{
int n;
std::queue<int> queue;
scanf("%d", &n);
for(int i = 1; i <= n; i++) queue.push(i);
while(queue.size() > 1)
{
queue.pop();
queue.push(queue.front());
queue.pop();
}
printf("%d\n", queue.front());
return 0;
}
반응형
'Programming > BOJ' 카테고리의 다른 글
[C/C++] 백준 #2167 2차원 배열의 합(포함배제 원리) (0) | 2023.04.12 |
---|---|
[C/C++] 백준 #2166 다각형의 면적(벡터) (0) | 2023.04.12 |
[C/C++] 백준 #2161 카드1(큐 자료구조) (0) | 2023.04.11 |
[C/C++] 백준 #2156 포도주 시식(탐욕 알고리즘) (0) | 2023.04.10 |
[C/C++] 백준 #2146 다리 만들기(DFS, BFS) (2) | 2023.04.10 |
댓글