이 문제는 큐를 사용하는 문제이다.
먼저 N을 4로 입력받으면 큐에 1, 2, 3, 4를 순서대로 push 해준다.
큐에서 제일 앞에 있는 요소를 pop 해주고 그다음 앞에 있는 요소는 맨 뒤로 보내준다.(값을 저장한 후 pop 하고 다시 저장한 값을 push)
pop을 할 때 큐가 비었는지 안 비었는지 꼭 확인을 해줘야 한다.
#include <iostream>
#include <queue>
using namespace std;
queue<int>q;
int main(void)
{
int N = 0;
cin >> N;
for (int i = 1; i <= N; i++)
{
q.push(i);
}
if (N == 1)
{
cout << 1;
return 0;
}
while (true)
{
q.pop();
int num = q.front();
q.pop();
if (q.empty())
{
cout << num;
break;
}
else
{
q.push(num);
}
}
return 0;
}
'백준 > 코테문제집' 카테고리의 다른 글
[백준] C++ 나머지 합(10986) (0) | 2025.01.23 |
---|---|
[백준] C++ 절댓값 힙(11286) (0) | 2025.01.22 |
[백준] C++ 오큰수(17298) (1) | 2025.01.22 |
[백준] C++ 최솟값 찾기(11003) (0) | 2025.01.22 |
[백준] C++ DNA 비밀번호(12891) (0) | 2025.01.22 |