728x90
반응형
다시 풀어도 모르겠고, 답을 봐도 모르겠다!!!
그래서 기록하기,,
문제 링크
조건
- 땅은 총 N행 4열이다.
- 한 행씩 내려올 때 같은 열은 연속해서 밟을 수 없다.
정답 코드
function solution(land) {
let answer = 0;
for (let i = 1; i < land.length; i++) {
for (let j = 0; j < 4; j++) {
// 얕은 복사본(원본 배열 수정 X)
let arr = land[i - 1].slice();
// 그 전 열의 값을 가장 낮은값으로 설정(같은 열을 지날수 없다.)
arr[j] = 0;
// 다음 행이랑 비교해서 가장 큰 값 구하기(현재 행의 가장 큰 값 + 다음 행의 가장 큰 값)
land[i][j] += Math.max.apply(null, arr);
answer = Math.max(land[i][j], answer);
}
}
return answer;
}
1. 현재 행에서 본인의 열은 0으로 설정하고(같은 열은 지날 수 없기 때문에 최솟값인 0으로 설정)
2. 현재 행의 최댓값과 다음 행의 열을 더해주고
3. answer는 계속 최댓값으로 갱신시켜 주면 된다.
디버깅하면서 결과를 하나하나 확인해줬다. 시간은 많이 소요되었지만 어쨌든 이해하고 넘어가서 기분이 좋다.
참고자료
질문이나 잘못된 점은 댓글로 남겨주세요 :)💖
반응형
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/JS] Lv2. 배달 (0) | 2023.03.31 |
---|---|
[프로그래머스] Lv2. 행렬의 곱셈 (0) | 2023.03.29 |
[프로그래머스] Lv2. 구명보트 (2) | 2023.03.22 |
[프로그래머스] Lv2. 기능개발 (0) | 2023.03.21 |
[프로그래머스] Lv2. 해시 - 위장 (0) | 2023.02.07 |
댓글