문제링크
제일 위(앞)에서 버린 다음 제일 아래(뒤)로 옮겨 넣는다.
=> FIFO(First In First Out) 자료구조인 큐를 활용한다.
제출코드
#include <iostream>
#include <queue>
using namespace std;
// 앞에서 버리고 뒤로 추가한다 -> queue를 사용하는 문제
int N;
int main()
{
queue<int> q;
cin >> N;
// 큐에 1부터 N까지의 수를 넣어줌
for (int i = 1; i <= N; i++)
{
q.push(i);
}
while (!q.empty())
{
// 큐에서 가장 앞의 값을 빼내줌
int front = q.front();
cout << front << " ";
q.pop(); // 버림처리
// 수를 버렸을 때 큐가 비어있는지(다음 수가 남아있는지)체크
if (q.empty())
{
break;
}
else
{
// 다음 수를 빼서 가장 마지막으로 넣어줌
int next = q.front();
q.pop();
q.push(next);
}
}
return 0;
}
'알고리즘 > 백준풀이' 카테고리의 다른 글
[백준/C++] 2776번 암기왕 (1) | 2024.10.26 |
---|---|
[백준/C++] 1966번 프린터 큐 (1) | 2024.10.26 |
[백준/C++] 2164번 카드2 (0) | 2024.10.26 |
[백준/C++] 2606번 바이러스 (0) | 2024.10.26 |
[백준/C++] 1260번 DFS와 BFS (0) | 2024.10.26 |