[JS][프로그래머스 -LEVEL 3 - 정수 삼각형 ]

정대만·2023년 8월 28일

코딩테스트

목록 보기
41/51
post-thumbnail

문제 해설

  • 처음 3 단계 여서 그런가? 내가봣을때 2단계로 내려가야될거 같다,
  • 위에 보면 dp 문제라고 써있다. 따라서 dp 문제로 풀었다. 이전 level2 에도 비슷한 문제가 있어서 생각하는데 어렵지 않았다.
  • dp 는 말그대로 . 내가 이자리에 있을때 최대 점수는 무엇인가? 에 집중하면 된다.
    따라서 배열을 잘보면 내자리에서 [ 하나위 (쎄로), 하나 왼쪽 ( 가로)] , [ 하나위[ 세로 ], 그냥 그자리(가로)] 에서 가장 큰수가 무엇인가? 로 풀었다.

코드

function solution(triangle) {
    var answer = 0;
    var new__arr= Array.from({length:triangle.length},()=>Array(triangle[triangle.length-1].length).fill(0));
    new__arr[0][0]=triangle[0][0]
    var final_max=0;
    for(var i=1; i<triangle.length; i++){
        for(var g=0; g<triangle[i].length; g++){
            var one=0;
            var two=0;
            if(i-1>=0 && g-1>=0){
                one=new__arr[i-1][g-1];
            }
            if(i-1>=0){
                two=new__arr[i-1][g]
            }
            var max__= Math.max(one,two);
           
            new__arr[i][g]=max__+triangle[i][g];
            final_max=Math.max(final_max,  new__arr[i][g])
        }
    }
    
    
    
    return final_max;
}
//solution([[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]])

이렇게만 3단계 나왓으면 좋겟다..^^:;

profile
안녕하세요

0개의 댓글