본문 바로가기

전체 글33

Priority Queue - 이론 1. 우선순위 큐 (Priority Queue) 가장 우선순위가 높은 데이터를 가장 먼저 출력하는 자료구조 힙(Heap) 자료구조를 통해 구현하게 되면 O(logN)의 시간복잡도를 가진다. 힙 이진 트리 자료구조의 일종 (이진 트리 : 자녀 노드가 두개인 트리) 항상 루트 노드를 제거 최대 힙 (max heap) : 루트 노드가 가장 큰 값을 가짐 -> 가장 큰 값을 가진 데이터가 우선적으로 제거 최소 힙 (min heap) : 루트 노드가 가장 작은 값을 가짐 -> 가장 작은 값을 가진 데이터가 우선적으로 제거 2023. 9. 19.
백준 1966번 [프린터 큐] const fs = require('fs'); const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n"); let [n, ...testcases] = input; // let [n, m] = [4, 2] // const priQ = [1, 3, 2, 4] for (let i = 0; i < n; i++) { let m = Number(testcases[i * 2].split(' ')[1]) let priQ = testcases[i * 2 + 1].split(' ').map(Number); let answer = 0; while (true) { let e1 = priQ.shift() if (e1 < Math.max(...priQ)) .. 2023. 9. 19.
백준 2161번 [카드1] const fs = require('fs'); const input = fs.readFileSync('/dev/stdin').toString().trim().split(); const n = Number(input[0]); let arr = Array.from(new Array(n), (x, i) => i+1); let answer = []; while(arr.length > 0){ answer.push(arr.shift()); if (arr.length > 0) { arr.push(arr.shift()); } } str = answer.join(" ") console.log(str) 2023. 9. 18.
백준 1158번 [요세푸스 문제] // const n = 7 // const k = 3 const fs = require('fs'); const input = fs.readFileSync('/dev/stdin').toString().trim().split(); let [n, k] = input[0].split(' '); let queue = []; for(let i=1; i 2023. 9. 18.