코딩테스트
큐를 이용한 문제 풀이 - 카드 게임
개발자 포비
2023. 2. 8. 23:21
* 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();
}
이상으로 문제 풀이를 마치도록 하겠습니다. 포바~!