반응형
내가 푼 문제 📖
내가 작성한 코드 💻
let input = require("fs")
.readFileSync(process.platform === "linux" ? "/dev/stdin" : __dirname+"/input.txt")
.toString()
.trim()
let number = +input
let mod = 1000000000
const memo = Array.from({length: 10}, () => 1 )
memo[0] = 0
for(let i=1; i<number; i++){
const memo_copy = [...memo]
for(let j=0; j<=9; j++){
if(j === 0) memo[0] = memo_copy[1] % mod;
else if(j === 9) memo[9] = memo_copy[8] % mod;
else memo[j] = (memo_copy[j-1] + memo_copy[j+1]) % mod
}
}
console.log(memo.reduce((a, c) => (a + c) % mod, 0));
어려웠던 점 ❓
1. 점화식 이후 코드 작성까지 연결이 잘 안 된 것
memo[n] = memo[n-1]+1, memo[n-1]-1
처음에 세운 점화식이다!! 그러나,, 이후 코딩까지 생각해내지는 못했다.
// N이 1일 경우
// 1, 2, 3, 4, 5, 6, 7, 8, 9
// N이 2일 경우
// 10, 12, 21, 23, 32, 34, 43, 45, 54, 56, 65, 67, 76, 78, 87, 89, 98
N이 2일 때 17가지 경우의 수가 나오게 되는데 숫자 0과 9는 +- 1을 하게 될 경우 각각 숫자 1, 숫자 8 이렇게 1가지 경우의 수만 나오게 된다.
if(j === 0) memo[0] = memo_copy[1] % mod;
else if(j === 9) memo[9] = memo_copy[8] % mod;
그래서 따로 조건문을 추가해 주었다.
느낀 점 ❕
1. 조금씩 발전하고 있다는 걸 느낀 하루
점화식을 얼추 비슷하게 세운 것 같은데 아직은 많이 부족하다는 느낌을 받았다.
DP 문제는 점화식을 세우는 게 굉장히 중요하다고 하는데 처음엔 점화식조차 떠오르지도 않았는데 이젠 오랜 고민과 생각 끝에 조금 끄적이는 정도는 할 수 있어서 나름 발전했다고 생각한다.
DP 문제를 풀면서 느끼는 거지만 코딩을 하는 것보다 점화식을 세우기 위해 생각과 고민하는 과정에 시간이 더 많이 든다. 처음엔 아무리 생각해도 점화식이 떠오르질 않아 좌절을 많이 했지만 이 또한 겪어보지 못한 문제들이었기 때문이라는 생각이 든다.
더 많은 문제들을 경험하면서 발전할 일만 남았다!!
회고 🧐
다음 주부터는 코딩문제를 아침에 풀어야 되기 때문에 살짝 걱정이 된다.그래서 좀 더 일찍 문제를 푸는 연습을 해야겠다.
출처 🏷️
반응형
'공부 > TIL' 카테고리의 다른 글
[TIL] 24.07.18 Swiper 슬라이드 (0) | 2024.07.18 |
---|---|
[TIL] 24.07.17 쓰로틀링(성능 측정) (0) | 2024.07.17 |
[TIL] 24.07.16 코딩 컨벤션이란? (0) | 2024.07.16 |
[TIL] 24.07.15 (0) | 2024.07.15 |
[TIL] 24.07.08 (0) | 2024.07.08 |
[TIL] 24.06.17 백준 1373번 js (0) | 2024.06.17 |
[TIL] 24.06.12 백준 1676번 js (2) | 2024.06.12 |
[TIL] 24.06.11 백준 6588번 js (0) | 2024.06.11 |