#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
int main() {
int N, temp = 0;
cin >> N;
queue<int> arr;
for(int i = 0; i < N; i++) {
arr.push(i+1);
}
while(arr.size() != 1) {
arr.pop();
temp = arr.front();
arr.pop();
arr.push(temp);
}
cout << arr.front();
}
이 문제 역시 순서대로 들어가서 가장 먼저 들어온 것이 가장 먼저 나간다는 것을 생각해보면, 위아래가 아니라 양옆으로 생각해보면 FIFO(first in first out) queue가 문제를 풀기 가장 적합한 데이터구조임을 알 수 있습니다.
문제: https://www.acmicpc.net/problem/2164
'Problem Solving > 백준' 카테고리의 다른 글
[백준/Python] 2606번 바이러스 (DFS,BFS,유니온파인드) (0) | 2022.01.28 |
---|---|
[백준/C++] 2822번 점수 계산 (0) | 2022.01.28 |
[백준/C++] 11866번 요세푸스 문제 0 (0) | 2022.01.26 |
[백준/C++] 큐 2 / queue 구현 / 시간 단축 (0) | 2022.01.26 |
[백준/C++] 1427번 소트인사이드 (0) | 2022.01.26 |