백준/코테문제집

[백준] C++ 카드2(2164)

2zreal 2025. 1. 22. 17:39

이 문제는 큐를 사용하는 문제이다.

먼저 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