본문 바로가기

공부/TIL

[TIL] 24.07.08

반응형

내가 푼 문제 📖

내가 작성한 코드 💻

let [buy, ...input] = require("fs")
  .readFileSync(process.platform === "linux" ? "/dev/stdin" : __dirname+"/input.txt")
  .toString()
  .trim()
  .split('\n')

const N = +buy
const cardPacks = input[0].split(' ').map(Number)
const memo = Array.from({length: N + 1}, () => 0)

for(let i=1; i<=N; i++){
  for(let j=1; j<=i; j++){
    memo[i] = Math.max(memo[i], memo[i - j] + cardPacks[j - 1])
  }
}

console.log(memo[N])

 

어려웠던 점

1. 최댓값 비교하기

for(let i=1; i<=N; i++){
  for(let j=1; j<=i; j++){
    memo[i] = Math.max(memo[i], memo[i - j] + cardPacks[j - 1])
  }
}

 

최댓값 비교하는 부분이 생각해 내기가 정말로 어려웠다. 1시간을 넘게 고민해 봤지만 해결방법이 떠오르질 않아 구글 서치를 통해 도움을 얻었다.

 

회고 🧐

얼른 DP 끝내고 DFS/BFS 알고리즘으로 넘어가고 싶당..ㅜㅜ


출처 🏷️

https://www.acmicpc.net/problem/11052

반응형

'공부 > TIL' 카테고리의 다른 글

[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.09 백준 10844번 js  (0) 2024.07.09
[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
[TIL] 24.06.10 React 트랙을 신청한 이유  (0) 2024.06.10