백준

[백준] 2164: 카드2 - C/C++

ul88 2024. 3. 27. 14:21

문제 출처

https://www.acmicpc.net/problem/2164


실버4 큐 문제이다.

 

1. 큐에 1~N까지의 수를 순서대로 넣는다.

2. pop

3. front를 push한다.

4. pop

5. 큐가 전부 빌 때까지 2번부터 다시 반복한다.

 

단순히 위 로직을 반복하기만 하면 되는 문제이지만,

처음 pop을 할 때 큐가 빌 수 있기 때문에, 체크를 한 번 해줘야한다.

 

#풀이

#include<iostream>
#include<queue>
using namespace std;
int main()
{
    queue <int> q;
    int N,ans=0;
    cin>>N;
    
    for(int i=1;i<=N;i++){
        q.push(i);
    }
    
    while(!q.empty()){
        ans=q.front();
        q.pop();
        if(q.empty()){
            break;
        }
        q.push(q.front());
        q.pop();
    }
    cout<<ans;
}