문제 링크
- https://www.acmicpc.net/problem/2161
사용 알고리즘
- 큐
시간복잡도
- O(n)
풀이
맨 위 카드를 버리고(그 후 출력) 그 다음 위에 있는 카드를 맨 아래로 보내는 과정을 큐 를 이용해 구상해보자면,
- front를 출력한 뒤 pop
- pop한 것을 push 처럼 해결할 수 있습니다.
조금 더 구체적으로 풀이 방법을 생각해봅시다.
- n 입력
- 1부터 n까지의 수를 queue에 삽입
- q.front() 출력
- q.pop()
- q.front()의 값을 q.push() 하고
- q.pop()
- 3번부터 6번 항목을 q.empty()가 false인 동안 반복
전체 코드
1 |
|