본문 바로가기

알고리즘/백준풀이

[백준/C++] 2161번 카드1

문제링크

2161번 카드1

 

 

제일 위(앞)에서 버린 다음 제일 아래(뒤)로 옮겨 넣는다.

=> 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