* 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();
}
이상으로 문제 풀이를 마치도록 하겠습니다. 포바~!
'코딩테스트' 카테고리의 다른 글
우선순위 큐를 이용한 문제 풀이 - 절댓값 힙 구하기 (0) | 2023.02.09 |
---|---|
스택을 이용한 문제 풀이 - 오큰수 (0) | 2023.02.08 |
스택으로 수열 만들기 (0) | 2023.02.08 |
슬라이딩 윈도우를 이용한 문제 풀이 - DNA 비밀번호 (0) | 2023.02.08 |
투 포인터 개념을 이용한 문제 풀이 - '좋은 수' 구하기 (0) | 2023.02.04 |
댓글