1.
Queue는 어떤 자료구조인가요?
•
Queue는 FIFO(First-In-First-Out) 구조로, 데이터가 들어온 순서대로 처리됩니다. 예를 들어, 프린터 대기열이나 메시지 큐에서 사용됩니다. 주요 연산으로는 enqueue(삽입)와 dequeue(삭제)가 있습니다.
2.
Stack은 어떤 자료구조인가요?
•
Stack은 LIFO(Last-In-First-Out) 구조로, 가장 나중에 들어온 데이터가 먼저 처리됩니다. 함수 호출 스택이나 역순 문자열 처리 등에 사용됩니다. 주요 연산으로는 push(삽입)와 pop(삭제)가 있습니다.
3.
Stack 두 개를 이용하여 Queue를 구현해 보세요.
•
한 스택은 입력용, 다른 스택은 출력용으로 사용합니다. 데이터를 삽입할 때는 입력 스택에 push하고, 데이터를 삭제할 때는 출력 스택이 비어 있으면 입력 스택의 모든 데이터를 출력 스택으로 옮긴 후 pop합니다. 이렇게 하면 FIFO 구조를 구현할 수 있습니다.
4.
Queue 두 개를 이용하여 Stack을 구현해 보세요.
•
한 큐는 데이터 저장용, 다른 큐는 임시 저장용으로 사용합니다. 데이터를 삽입할 때는 저장용 큐에 enqueue하고, 데이터를 삭제할 때는 저장용 큐의 데이터를 임시 큐로 옮기며 마지막 요소를 제거합니다. 이렇게 하면 LIFO 구조를 구현할 수 있습니다.
5.
Queue vs priority queue를 비교하여 설명해 주세요.
•
Queue: FIFO 구조로, 데이터가 들어온 순서대로 처리됩니다.
•
Priority Queue: 우선순위가 높은 데이터가 먼저 처리됩니다. 일반적으로 힙(Heap) 자료구조를 사용하여 구현하며, 우선순위에 따라 데이터를 정렬합니다.