1.배열을 조회하려는데 undefined가 출력되었는데
오늘은 이전과는 조금 다르게 이중 for문을 사용하다가 볼 수 있었다.

왜 출력이 되지 않는지 내용물을 넣어봤지만 undefined만 볼 수 있었고
해당 부분의 값을 역추적하려고 하지 않고 
변수를 사용하면 에러가 생길 수 있는지에 대한 내용을 검색하고 있었다.

동기분과 대화를 하던 도중 문제를 발견했는데
첫 번째 for문의 i 다음에 들어간 두 번째 for문의 j를 잘못 관리해 
j++가 아닌 i++로 처리했던 것이다.

dp형식으로 관리되기 때문에 
아직 존재하지도 않는 배열을 부르려고 했으니
당연히 undefined가 출력될 수 밖에 없는 것이었다.

배열이 깨지고 can not read property?? 라는 에러로 당황한건 오랬만인데
원인 파악은 기초부터 역순으로 먼저 처리해야 함을 다시 한번 배웠다.





(1).백준 2775 부녀회장이 될테야는 사실 예전에 접해봤던 문제였다.
코딩을 시작하고 얼마 되지 않은 시점에
알고리즘 학습은 시작도 하지 않은 상태에서 코드스테이츠 모각코에서
부녀회장이 될테야라는 문제를 푸는데 어떻게 해야 할지 질문이 올라왔다.

그때는 방향성은 알려드릴 수 있었지만
말한 내용을 내가 구현하는 것은 부담을 느끼고 시도해보지 않았고
그 시점에 처음으로 백준이라는 사이트에 대해 알게 되었다.

오늘 다시 시도해본 문제는 간단했는데
이제는 구현할 능력이 생겨서 그런 것 같다.

k층 n호에 몇명이 사는지를 구해야 하는 문제로
0층은 1~n으로 시작되며
각 모든 층의 1호는 당연히 1일 수 밖에 없지만
2호는 0층부터 2,3,4,5,6,7,8,9로 1씩 증가하고
3호는 0층부터 3,6,10,15,21,28로 k+2만큼씩 늘어난다고 볼 수 있다.

다행히 14호, 14층이라는 제한이 있기 때문에
0층부터 한칸씩 쌓아나가 문제를 해결할 수 있었다.

let input = `2
1
3
2
3`.split('\n').map(Number)

let dp = [new Array(14).fill(1)]
for(let i = 0 ; i < 15 ; i++){
    let newFloor = [1]
    for(let j = 0 ; j < 13 ; j++){
        newFloor.push(dp[i][j+1] + newFloor[j])
    }
    dp.push(newFloor)
}

for(let i = 1 ; i < input.length ; i+=2){
    console.log(dp[input[i]+1][input[i+1]-1])
}

console.log(dp)

'회고' 카테고리의 다른 글

[취업준비일지] - 100  (0) 2023.01.28
[취업준비일지] - 99  (0) 2023.01.27
[취업준비일지] - 97  (0) 2023.01.25
[취업준비일지] - 96  (0) 2023.01.24
[취업준비일지] - 95  (0) 2023.01.23

+ Recent posts