[프로그래머스] 코딩테스트 연습 - 61
level 2 - 땅따먹기
땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟으면서 내려와야 합니다. 단, 땅따먹기 게임에는 한 행씩 내려올 때, 같은 열을 연속해서 밟을 수 없는 특수 규칙이 있습니다.
마지막 행까지 모두 내려왔을 때, 얻을 수 있는 점수의 최대값을 return하는 solution 함수를 완성해 주세요.
입출력 예시
land : [[1,2,3,5],[5,6,7,8],[4,3,2,1]]
-> 16
function solution(land) {
var answer = 0;
var pre = -1;
for(var i=1; i<land.length; i++) {
for(var j=0; j<4; j++) {
var [max, idx] = find_max(land[i - 1], j);
land[i][j] += max;
pre = idx;
}
}
function find_max(arr, rem) {
var max = 0;
var idx = -1;
for(var i=0; i<arr.length; i++) {
if (i == rem) continue;
if (max < arr[i]) {
max = arr[i];
idx = i;
}
}
return [max, idx]
}
return Math.max(...land[land.length - 1]);
}
Author And Source
이 문제에 관하여([프로그래머스] 코딩테스트 연습 - 61), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@krkorklo58/프로그래머스-코딩테스트-연습-61저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)