https://www.acmicpc.net/problem/2164
queue를 활용하는 문제이다.
해당 문제 내용대로
1. 맨 앞에 것을 빼고 (pop)
2. 그 다음 맨 앞 것(queue.front)을 뒤로 밀어넣고(push)
3. 다시 맨 앞 것을 빼면 된다.(pop)
이 반복을 1개 남을때까지 반복하면 된다.
#include <iostream>
#include <queue>
using namespace std;
int main()
{
std::cin.tie(NULL);
std::ios::sync_with_stdio(false);
int N;
cin >> N;
queue<int> q;
for (int i = 1; i <= N; i++)
q.push(i);
while (q.size() != 1)
{
q.pop();
q.push(q.front());
q.pop();
}
cout << q.front();
return 0;
}
'백준 문제풀이 > 실버4' 카테고리의 다른 글
백준 4949번 - 균형잡힌 세상 (0) | 2022.03.05 |
---|---|
백준 10828번 - 스택 (0) | 2022.01.13 |
백준 1049번 - 기타줄 (0) | 2021.12.17 |
백준 1978번 - 소수 찾기 (0) | 2021.11.11 |
백준 1120번 - 문자열 (0) | 2021.11.09 |