Queue란 무엇인가?
일반 적인 줄이라고 생각하면 편한데 영화관 매표소에서 순서를 기다릴 때 줄을 서는데, 새로 온사람은 맨 뒤에 서고
제일 앞 사람은 필요한 일을 한 후에 빠지게 된다. 이렇게 뒤에서 들어가고 앞에서 빠지는 구조를 Queue라고 한다.
먼저 들어간 사람이 먼저 빠져 나가는 구조 First In Firs Out(FIFO)구조인 것이다.
자바스크립트의 배열로 따지자면 push와(맨뒤에서 추가되고) shift(맨 앞에서 빠지는) 메소드만 있다고 생각하면 된다.
- Stack과 마찬가지로써 데이터를 일시적으로 쌓기 위해서 두는 구조
- 제일 먼저 넣은 데이터가 가장 먼저 꺼내지는 구조(선입선출(FIFO)
- 데이터를 넣는 작업을 인큐(enqueue),
- 데이터를 꺼내는 작업은 디큐(dequeue)
- 데이터를 꺼내는 위치를 프론트(front)
- 데이터를 넣는 위치를 리어(rear)
이번 알고리즘 문제는 queue 문제이다.
먼저 array를 초기화를 하자.((v, i)를 이용해서) 그리고 queue.push와 queue.shift()를 이용해서 코드를 작성해보자.
<body>
<script>
function solution(n, k) {
let answer;
// v는 유사개체의 undefined이고 i가 인덱스 번호이다.
let queue = Array.from({ length: n }, (v, i) => i + 1);
while (queue.length) {
for (let i = 1; i < k; i++) queue.push(queue.shift());
queue.shift();
if (queue.length === 1) answer = queue.shift();
}
console.log(queue)
return answer;
}
console.log(solution(8, 3));
</script>
</body>
<출처 : 자바스크립트 알고리즘 문제풀이(코딩테스트 대비): 김태원>
참고:
자바스크립트 알고리즘 문제풀이(코딩테스트 대비) - 인프런 | 강의
자바스크립트(JavaScript)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 재미있게 풀 수 있는 기초 단계 문제부터 고급 알고리즘까지 단계별로 차근차근 배우도록 설계된 강좌입니다., 개발
www.inflearn.com
https://www.zerocho.com/category/Algorithm/post/580b9b94108f510015524097
(Algorithm) 자료구조(큐, queue)
안녕하세요. 이번 시간에는 큐에 대해 알아보겠습니다. 큐는 실생활에서 줄이라고 생각하시면 됩니다. 우리가 순서를 기다릴 때 줄을 서죠? 새로 온 사람은 줄 맨 뒤에 서고, 제일 앞 사람은 필
www.zerocho.com
https://medium.com/@sindepal/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-queue-fdb456c60991
알고리즘- Queue
Queue 란 ?
medium.com
https://songeunjung92.tistory.com/23
[자료구조/java] 큐 (Queue) - 선형큐, 원형큐 순차 자료구조 방식 구현
* 큐 (Queue) "스택과 달리 한쪽 끝에서는 삽입 작업이, 반대쪽 끝에서는 삭제 작업이 이루어진다." 따라서, 삽입된 순서대로 삭제되는 선입선출(FIFO, First-In-First-Out)의 구조로 운영된다. 줄을 서있
songeunjung92.tistory.com
'JavaScript > JS_Algorithm' 카테고리의 다른 글
[인프런 - JS 알고리즘 문제풀이] basic question (0) | 2021.08.08 |
---|---|
[인프런 - JS 알고리즘 문제풀이] Queue 판단2 (0) | 2021.08.06 |
[인프런 - JS 알고리즘 문제풀이] stack판단5 (0) | 2021.08.06 |
[인프런 - JS 알고리즘 문제풀이] stack판단4 (0) | 2021.08.05 |
[인프런 - JS 알고리즘 문제풀이] stack판단3 (0) | 2021.08.05 |