728x90
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/12913
문제 풀이 방법
- 이 문제는 DP를 이용해 풀어야 하는 문제이다.
나도 그리디를 적용해 문제를 풀어봤지만 실패했다... - DP에서 중요한 이전 결과를 저장하고 사용하는 방법을 이용해서
행별 최대값을 land에 다시 할당해서 문제를 풀었다. - 두번째 반복문에서 복사한 배열에 0을 넣어주는 이유는
같은 열에 있는 수를 제외한 나머지 수의 합을 비교하기 위함이다.
코드
const solution = (land) => {
let num = 0;
for(let i=1; i<land.length; i++){
for(let j=0; j<4; j++){
let arr = land[i-1].slice();
arr[j] = 0;
land[i][j] += Math.max(...arr);
num = Math.max(land[i][j], num);
}
}
return num;
}
728x90
'코딩 테스트 > 프로그래머스 코딩 테스트 연습' 카테고리의 다른 글
[JS] 2Level / Summer/Winter Coding(~2018) / 방문 길이 (0) | 2023.09.12 |
---|---|
[JS] 2Level / 연습문제 / 뒤에 있는 큰 수 찾기 (0) | 2023.09.11 |
[JS] 2Level / 완전탐색 / 요격 시스템 (0) | 2023.09.08 |
[JS] 2Level / 2022 KAKAO BLIND RECRUITMENT / 주차 요금 계산 (0) | 2023.09.07 |
[JS] 2Level / 연습 문제 / 요격 시스템 (0) | 2023.09.06 |