문제 🔽
https://school.programmers.co.kr/learn/courses/30/lessons/12913
다른사람 풀이 🔽
function solution(land) {
var answer = 0;
return Math.max(...land.reduce((a, c) => {
return [
c[0] + Math.max(a[1], a[2], a[3]),
c[1] + Math.max(a[0], a[2], a[3]),
c[2] + Math.max(a[0], a[1], a[3]),
c[3] + Math.max(a[0], a[1], a[2]),
];
}, [0, 0, 0, 0]));
}
내풀이🔽
1. 성공
function solution(land) {
var answer = []
for(let i=1; i<land.length; ++i){
land[i][0]+=Math.max(land[i-1][1],land[i-1][2],land[i-1][3])
land[i][1]+=Math.max(land[i-1][0],land[i-1][2],land[i-1][3])
land[i][2]+=Math.max(land[i-1][1],land[i-1][0],land[i-1][3])
land[i][3]+=Math.max(land[i-1][1],land[i-1][2],land[i-1][0])
}
return Math.max(...land[land.length-1])
}
느낀점🔽
동적 계획법이라는 자료구조로 접근해야 한다~
'Javascript' 카테고리의 다른 글
Object.is() 개념잡기 (0) | 2023.11.21 |
---|---|
프로그래머스 코딩테스트 풀이(js) > 완주하지못한선수(lv1) (0) | 2023.08.04 |
프로그래머스 코딩테스트 풀이(js) > 같은 숫자는 싫어(lv1) (0) | 2023.08.02 |
프로그래머스 코딩테스트 풀이(js) > 문자열 내 마음대로 정렬하(lv1) (0) | 2023.08.01 |
프로그래머스 코딩테스트 풀이(js) > 모음사전(lv2) (0) | 2023.07.31 |