큐에 다음 함수를 적용한 결과로 (가) ∼ (다)에 들어갈 내용을 바르… | [7급 국가직 알고리즘] 24년 1회차 기출문제 상세 페이지
1[7급 국가직 알고리즘] 24년 1회차
큐에 다음 함수를 적용한 결과로 (가) ∼ (다)에 들어갈 내용을 바르게 연결한 것은?enqueue(e): 큐의 제 위치에 객체 e를 삽입한다.
dequeue(): 큐의 제 위치에서 객체를 삭제한다. 빈 큐일 경우에는 “error”를 출력한다.
| 연산순서 | 함수 | 출력 | 큐 저장공간 |
|---|---|---|---|
| 1 | dequeue() | “error” | () |
| 2 | enqueue(1) | (1) | |
| 3 | enqueue(2) | (1, 2) | |
| 4 | enqueue(5) | (1, 2, 5) | |
| 5 | dequeue() | (가) | |
| 6 | enqueue(7) | (나) | |
| 7 | dequeue() | (다) |
1
(1, 2) (1, 2, 7) (1, 2)
2
(2, 5) (2, 5, 7) (5, 7)
3
(2, 5) (5, 7) (7)
4
(2, 5, 1) (2, 5, 1, 7) (5, 1, 7, 2)
해설
(가)~(다)는 차례로 (2, 5) → (2, 5, 7) → (5, 7)이다.
큐는 선입선출(FIFO) 구조로, 삭제는 맨 앞에서, 삽입은 맨 뒤에서 일어난다.
(1, 2, 5)에서 dequeue로 맨 앞의 1이 빠져 (2, 5), enqueue(7)로 뒤에 7이 붙어 (2, 5, 7), 다시 dequeue로 맨 앞의 2가 빠져 (5, 7)이 된다.
- (1, 2) → (1, 2, 7) → (1, 2)는 맨 뒤에서 꺼내는 스택(LIFO) 방식으로 처리한 결과이다.
- (2, 5) → (5, 7) → (7)은 enqueue(7)에서도 원소를 하나 삭제한 것처럼 처리해 연산 정의와 맞지 않는다.
- (2, 5, 1)로 시작하는 결과는 삭제한 1을 다시 뒤에 넣은 회전처럼 처리한 것으로, 삭제 연산의 정의와 맞지 않는다.
오류나 개정된 내용이 보이면 알려주세요