JS7 [JS] 설탕배달 - 백준 2839 문제 시간복잡도 O(n) 해결방법 i는 (i-3)+ 3 또는 (i-5)+5 으로 만들 수 있다. 3과 5로 만들 수 없는 경우에는 -1을 저장한다. 예외로 dp[i-3] 또는 dp[i-5]가 -1인 경우를 고려한다. dp[i]=Math.min(dp[i-3],dp[i-5]) 코드 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./example.txt"; let input = fs.readFileSync(filePath).toString(); input = parseInt(input); let dp = [0, -1, -1, 1, -1, 1]; for (let i = 6; i 2024. 1. 5. [JS] 부녀회장이 될테야 - 백준 2775 문제 시간복잡도 O(n) 해결방법 dp[i][j]는 i층 j호의 인원을 나타내며 j호 까지의아래층의 사람을 모두 더한 값이다. dp[i][j-1]는 1호 앞의 집의 인원수이며 아래층의 1호 앞까지의 합이다. 따라서 아래층의 같은 호수 합인 dp[i-1][j]을 더하여 dp[i][j]를 구한다. 코드 dp는 apartment배열이다. 0층은 j호에 j명이 거주하므로 직접 구하고 시작한다. const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./example.txt"; let input = fs.readFileSync(filePath).toString().split("\n"); let input_ar.. 2023. 12. 21. [JS] 1, 2, 3 더하기 - 백준 9095 문제 시간복잡도 O(n) 해결방법 i는 i-1을 만드는 방법 + 1, i-2를 만드는 방법 + 2, i-3을 만드는 방법 +3을 통해 만들 수 있다. (1+2와 2+1는 다르기 때문에 가능) dp[i]=dp[i-1]+dp[i-2]+dp[i-3] 코드 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./example.txt"; let input = fs.readFileSync(filePath).toString().split("\n"); let dp = [0, 1, 2, 4]; let max_num = Math.max(...input.slice(1)); console.log(max_num); fo.. 2023. 12. 21. [JS] 연속합 - 백준 1912 문제 시간복잡도 O(n) 해결 방법 dp[i]에는 지금까지의 최대의 연속합을 저장한다. dp[i-1]+input[i]보다 input[i]가 더 크다면 input[i]부터의 연속합이 더 클 것이니 input[i]를 저장한다. dp[i]=Math.max(dp[i-1]+input[i-1],input[i-1]) (코드에서는 input이 input[1]에 저장되어있음) 코드 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./example.txt"; let input = fs.readFileSync(filePath).toString().split("\n"); input[1] = input[1].spli.. 2023. 12. 21. 이전 1 2 다음