알고리즘 4

[백준] 14501 - 퇴사 (node.js)

문제 코드let fs = require("fs");// "/dev/stdin"// "./text.txt"const [n, ...arr] = fs.readFileSync("./text.txt").toString().split("\n");const N = Number(n);const list = arr.map((v) => v.split(" ").map((v) => +v));let dp = Array(N + 1).fill(0);for (let i = 0; i  문제 해결 과정 1. 완전 탐색첫날부터 상담을 하는 경우와 안하는 경우를 나눠서 dfs를 한다.이때 퇴사일이 O(2^N)이라고 생각했고 1 현재 상담을 하는 경우, 상담을 완료하는 시간이 퇴사일(N)을 넘지 않아야 한다. 퇴사일을 넘지 않는다면 받을 금..

알고리즘 2024.07.04

[백준] 2293 - 동전 1 (node.js)

문제 코드let fs = require("fs");// "/dev/stdin"// "./text.txt"let input = fs.readFileSync("./text.txt").toString().split("\n");const [n, k] = input .shift() .split(" ") .filter((v) => v);let coins = input.map((v) => +v);let dp = Array(Number(k) + 1).fill(0);dp[0] = 1;coins.forEach((v) => { for (let j = v; j  문제 해결 과정저번 멘토링 받았던 것을 토대로 우선 문제를 풀기 전 시간 복잡도와 공간 복잡도를 생각해봤다. 문제 조건이 1 그리고 앞서 사용한 동전에 따라 ..

알고리즘 2024.06.18

[백준] 1863 - 스카이라인 쉬운거 (node.js)

문제 코드let fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().split("\n");input.shift();const data = input.map((value) => +value.split(" ")[1]);// 높이가 줄어들때마다 pop() 하면서 count 올려줌 -> stack의 맨 위의 값이 햔재 값보다 작을때까지// 현재 높이가 0보다 크고, stack이 비어있거나, stack의 맨 위의 값보다 현재 값이 클 때 push()// 배열을 다 돌았는데 stack에 값이 남아있다면 남아있는 만큼 count 늘려줌// 높이가 같다면 같은 건물일 수도 있기 때문에 push 안함let stack = [];let count ..

알고리즘 2024.06.10