JavaScript/알고리즘

알고리즘 스터디 - queue / 큐

반응형

지난시간 Stack 에대해 알아보았는데 Stack 은 LIFO 였으나, Queue는 FIFO 다.

 


  FIFO

First in First Out 의 약자로, 들어온 순서대로 나간다고할 수 있다.

이 때 우리가 흔히 커피를 주문하거나 맛집에 대기를할 때 Queue 와 비슷한 원리라고할 수 있다.

이 부분을 유의하며 오늘 공부를 잘 해보자.

 

 

  Queue

우선, Queue의 기본 원리는 알았으니 이미지를 보며 어떤 기능을 구현해야 하는지 보자.

 

이 이미지를 보면 그나마 좀 편히 알 수 있을것 같다.

숫자는 들어온 순서를 의미하며,

Enqueue 는 큐에 추가를 하는것이고, Dequeue 는 들어온 순서대로 빼주는 기능이다.

rear는 배열의 시작부분, front 는 배열의 끝부분이다.

 

간단히 보면 rear ~ front 부분을 출력해주면 되는것이다.

 

 

Enqueue 와 Dequeue를 계속해서 하다보면 이런 배열이 완성이 된다.

dequeue를 많이하여  rear과 front 가 같아진다면 출력을 했을 때 값이 없을것이다.


 

 

이렇게 Queue에 대해서 알아보았다.

위에 알려준대로만 보았을 때 문제가 있기 마련이다.

 

Q1 . 이 Queue 알고리즘은 무엇이 문제인지?

Q2 . 이 문제를 해결하기 위해 어떤것이 나왔는지?

 

이 두가지의 질문과 해당 기능을 구현한 코드를 함께 댓글로 남겨두면 좋을것같다.

반응형