본문 바로가기
코딩테스트

큐를 이용한 문제 풀이 - 카드 게임

by 개발자 포비 2023. 2. 8.

* Do it 코딩테스트를 참고하였습니다.

 

 큐는 FIFO( First - In - First - Out), 선입 선출의 특징을 지닌 선형 자료구조입니다. 해당 문제에서는 이러한 큐의 특성을 이용하여 문제를 보다 쉽게 풀이합니다. 

 맨 위의 카드는 버리고 두 번째 카드는 뽑아서 맨 뒤로 넣습니다. 이 과정을 큐로 나타낸다면

Pop, Pop (<- 해당 값을 Push)를 반복하는 것입니다.

 

 문제가 복잡하지 않으므로 바로 코드로 넘어가도록 하겠습니다.

void solution_012()
{
	int N;
	cin >> N;
	deque<int> deque;

	for (int i = 0; i < N; i++)
	{
		deque.push_back(i + 1);
	}

	while (deque.size() != 1)
	{
		deque.pop_front();
		int temp = deque.front();
		deque.pop_front();
		deque.push_back(temp);
	}

	cout << deque.front();

}

이상으로 문제 풀이를 마치도록 하겠습니다. 포바~!

 

 

댓글