알고리즘
-
[백준]1822번 차집합 with Node.jsProgramming/Algorithm 2023. 6. 4. 21:33
//1822번 차집합 문제, 정렬 한 뒤 투포인터 활용 const [n, A, B] = require("fs").readFileSync("testInput.txt").toString().split("\n").map( v => v.split(" ").map(Number).sort((a, b) => a - b)); let aPointer = 0; let bPointer = 0; let diff = []; // while (aPointer B[bPointer]) { bPointe..
-
[백준]5555번 반지 with Node.jsProgramming/Algorithm 2023. 5. 13. 15:49
const [a,n,...input] = require("fs").readFileSync("testInput.txt").toString().split("\n"); let cnt = 0; for(let i = 0; i < n; i++) { if((input[i]+input[i]).includes(a)){ cnt++; }; }; console.log(cnt); 노드 버전의 풀이가 안보여서 올린다. 솔직히 문자열의 시작과 끝은 뇌 빼놓고 풀었다.
-
[백준]1312번 소수 with Node.jsProgramming/Algorithm 2023. 5. 7. 21:48
const [a,b,n] = require("fs").readFileSync("testInput.txt").toString().trim().split(" ").map(Number); let result = a % b; for(let i = 0; i < n-1; i++){ result *= 10; result %= b; }; result *= 10; console.log(Math.floor(result/b)); 구글링 시 Nodejs 풀이가 존재하지 않아서 누군가에겐 도움이 되었으면 하여 올린다.
-
[백준]2491번 수열 with Node.jsProgramming/Algorithm 2023. 3. 16. 10:56
//2491번 수열 문제, const [N,input] = require("fs").readFileSync("testInput.txt").toString().trim().split("\n").map(v => v.split(" ").map(Number)); let answer = 0; // 오름차순 let asc=1; for(let i = 0; i < N; i++) { if(input[i] = input[i + 1]) { desc++; }else { desc=1; }; answer = Math.max(desc, answer); }; console.log(answer);
-
[백준]9372번 상근이의 여행 with Node.jsProgramming/Algorithm 2023. 3. 4. 15:55
//9372번 상근이의 여행 문제, 비행기 종류의 최소 개수 즉, N을 구하여 -1하면 주어진 N개의 국가를 여행하기 위한 최소를 구할 수 있다.ex)5개 국가면 한번씩 탄다고 하였을 때 4번 const [T, ...input] = require("fs").readFileSync("testInput.txt").toString().split("\n").map( v => v.split(" ").map(Number)); let arr = input.splice(0); let result = []; for (let i = 0; i < T; i++) { let N = arr[0][0]; let M = arr[0][1]; arr.shift(); for(let j = 0; j < M; j++) { arr.shift(..
-
[백준]1057번 토너먼트 with Node.jsProgramming/Algorithm 2023. 2. 26. 13:28
//1057번 토너먼트 문제, 각각의 등수는 (n/2+n%2)로 구할 수 있다. const filePath = process.platform === "linux" ? "/dev/stdin" : "testInput.txt"; const [N, ...arr] = require("fs").readFileSync(filePath).toString().trim().split(" ").map(Number); let [zi,im] = [...arr]; let result = 0; while(zi !== im){ zi = parseInt(zi/2+zi%2); im = parseInt(im/2+im%2); result++; }; console.log(result !== 0 ? result : -1);
-
[백준]10845번 큐 with Node.jsProgramming/Algorithm 2023. 2. 11. 14:27
//10845번 큐 문제, 스위치문을 사용하여 풀었고 결과는 다른 이들에 비해 속도는 25% 정도 빠르지만 메모리를 10% 정도 더 사용한다. let [ N,...input ] = require("fs").readFileSync("testInput.txt").toString().trim().split("\n").map(v => v.split(" ")); const queue = []; let result = ''; for(let i = 0; i < N; i++) { // switch(input[i][0]){ case "push": queue.push(input[i][1]); break; case "pop": result += (queue.length === 0 ? "-1" : queue.shift()) ..
-
[백준]10773번 제로 with Node.jsProgramming/Algorithm 2023. 2. 10. 23:04
//10773번 제로, 해당 문제는 0이 주어지면 가장 최근에 불린 수를 없애는 방식이라 FILO 형태의 스택 구조 임을 알 수 있다. //이에 유의하여 0이 나올 시 스택의 가장 윗 부분 수를 제거하여 주면 된다. const [ N,...input ] = require("fs").readFileSync("testInput.txt").toString().trim().split("\n").map(Number); const stack = []; let result = 0; for(let i = 0; i