강의로 돌아가기
smilejk930

테스트 추가하여 통과는 하는데 채점을 하나도 통과못하네요. 조언 부탁드립니다.

//테스트 추가 >> [[9, 5, 2, 3], [9, 8, 6, 7], [8, 9, 7, 1], [100, 9, 8, 1]] =>>>>> result = 34
//인터넷에서 찾은 코드를 돌려보니 채점은 모두 통과하는데, 위에 있는 테스트 값은 result = 125를 리턴합니다;;;
//제가 코딩한 소스와 인터넷에서 찾은 소스 두개다 업로드했습니다.
//조언 부탁드립니다.

//내가 코딩한 function
function solution(land) {
var answer = 0;

var overlap;

for(var k=0; k < land.length; k++){
var first = true;
var index;
var max;
var arr = land[k];
for(var i=0 ; i < arr.length ; i++){
if(overlap == i) continue;

if(first){
max = arr[i] > arr[i+1] ? arr[i] : overlap==(i+1) ? arr[i] : arr[i+1];
index = arr[i] > arr[i+1] ? i : overlap==(i+1) ? i : i+1;
first = false;
}
max = max>arr[i]?max:arr[i];
index = max>arr[i]?index:i;

}
answer+=max;
overlap=index;
}
return answer;
}

//인터넷에서 찾은 function
function solution(board) {
let result = 0;
var size = board.length;
let arr = new Array(10000);
for(let i=0; i<size; i++){
arr[i] = new Array(4);
}
for(let i=0; i<4; i++){
arr[0][i] = board[0][i];
}
for(let i=1; i<size; i++){
for(let j=0; j<4; j++){
let maxValue = 0;
for(let k=0; k<4; k++){
if(j === k) continue;
maxValue = Math.max(maxValue, arr[i - 1][k] + board[i][j]);
}
arr[i][j] = maxValue;
}
}
for(let i=0; i<4; i++){
result = Math.max(result, arr[size - 1][i]);
}
return result;
}

  • 이준희
    저도 문제를 이해못한건지 모르겟는데 테스트는 맞아도 채점은 다틀리네요;; 이준희 2018.09.04 22:39
1 개의 답변
Demi

안녕하세요. 본 문제 해설은 알고리즘 문제 해설 강의에서 확인하실 수 있습니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.