자바스크립트8 [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] 2×n 타일링 2 - 백준11727 문제 시간복잡도 O(n) 해결방법 dp[i] 는 dp[i-1]에서 세로블럭을 붙인 것과 dp[i-2]에서 2x2 블럭 또는 가로블럭 두개를 붙인 모양들이다. dp[i-2]는 두가지 모양을 붙일 수 있으니 dp[i-2]*2만큼 만들 수 있다. dp[i]=dp[i-1]+dp[i-2]*2 참고 - 최대 정수값 자바 스크립에서 안전한 최대 정수값은 2^53 - 1 이다. 다음과 같이 이 값을 넘어가면 같은 숫자로 인식하여 정확한 값이 나오지 않는다. 이 문제에서는 10007로 나눈 나머지를 구하라고 했으니 먼저 나눠서 저장해주자. console.log에서 %10007을 하면 런타임 에러가 난다. const x = Number.MAX_SAFE_INTEGER + 1; const y = Number.MAX_SAFE_.. 2023. 12. 21. [JS] 피보나치 함수 - 백준 1003 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제 시간복잡도 O(n) 해결방법 dp[i] = ["0 호출 수", "1 호출 수"]로 두고 계산하며 저장한다. 위와 같이 dp[i]의 왼쪽은 dp[i-1], 오른쪽은 dp[i-2]를 호출하므로 0과 1이 호출된 수가 담긴 배열을 그대로 더해주면 된다. 코드 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./example.txt"; let input = fs.readFileSync.. 2023. 12. 21. 이전 1 2 다음