TIL(2024,07,12)기술 면접 대비

김보근·2024년 7월 12일

Unity

목록 보기
41/113

기술 면접 대비

확인 문제

Queue가 무엇인지 알고 있나요? 어떤 방식으로 작동하는지 설명할 수 있을까요?

답변

Queue는 선입선출(FIFO, First In First Out) 원칙을 따르는 자료구조입니다. 이는 먼저 삽입된 데이터가 먼저 삭제되는 구조를 의미합니다. Queue의 주요 연산으로는 삽입(enqueue)과 삭제(dequeue)가 있습니다.

설명문제

1. Queue의 특성을 설명해주세요.
2. Queue는 언제 사용하면 좋은 자료구조인가요? 반대로 언제 사용하기 불리할까요?
3. Queue를 본인의 프로젝트에 적용해본 경험을 말해주세요.

답변

  1. Queue의 특성
    선입선출(FIFO): 가장 먼저 삽입된 요소가 가장 먼저 제거됩니다.
    기본 연산:
    Enqueue: 요소를 Queue의 끝에 추가하는 연산.
    Dequeue: 요소를 Queue의 앞에서 제거하고 반환하는 연산.
    Peek/Front: Queue의 앞에 있는 요소를 제거하지 않고 반환.
    IsEmpty: Queue가 비어 있는지 확인하는 연산.
    Size: Queue에 있는 요소의 수를 반환.

  2. Queue의 사용 시기와 사용이 불리한 경우

사용 시기:
작업 스케줄링: 프로세스 스케줄링에서 각 작업을 순차적으로 처리할 때.

프린터 대기열: 인쇄 작업을 대기 순서대로 처리할 때.

너비 우선 탐색(BFS): 그래프나 트리의 레벨 순서 탐색에서.

데이터 스트리밍: 실시간 데이터 스트림을 처리할 때, 데이터가 순차적으로 처리되도록.

사용이 불리한 경우:

임의 접근 필요: Queue는 임의 위치의 요소 접근이 비효율적이기 때문에, 임의 접근이 자주 필요할 때는 적합하지 않습니다.

후입선출(LIFO) 필요: 스택처럼 후입선출이 필요한 경우에는 적합하지 않습니다.
양방향 작업 필요: 양쪽 끝에서 삽입과 삭제가 모두 필요한 경우에는 Deque(덱) 같은 자료구조가 더 적합합니다.

profile
게임개발자꿈나무

0개의 댓글