동적계획법 DP 로 풀 수 있었다.
4개의 행이 정해져 있기 때문에 각 행을 내려갈 때마다 이전의 자신의 행을 제외한 값을 더하고 최댓값을 저장해나가면서 최종적으로 1행 2행 3행 4행을 비교해서 가장큰값이 정답이 되게끔 풀이하였다.
import java.util.*;
class Solution {
int maxScore(int a, int b, int c){
return Math.max(Math.max(a,b),c);
}
int solution(int[][] land) {
int answer = 0,last;
for(int i = 1 ; i < land.length ; i++){
land[i][0]+=maxScore(land[i-1][1],land[i-1][2],land[i-1][3]);
land[i][1]+=maxScore(land[i-1][0],land[i-1][2],land[i-1][3]);
land[i][2]+=maxScore(land[i-1][1],land[i-1][0],land[i-1][3]);
land[i][3]+=maxScore(land[i-1][1],land[i-1][2],land[i-1][0]);
}
return Math
.max(land[land.length-1][3],
maxScore(land[land.length-1][0],land[land.length-1][1],land[land.length-1][2]));
}
}
Math
-max(a,b)
'Algorithm & Data Structures > Programers' 카테고리의 다른 글
Lv 2. 주식가격 (0) | 2024.07.09 |
---|---|
Lv 2. 디펜스게임 (0) | 2024.07.09 |
Lv 2. 롤케이크 자르기 (0) | 2024.07.04 |
Lv 2. 뒤에있는 큰수 찾기 (0) | 2024.07.02 |
Lv 2. 모음사전 (0) | 2024.07.01 |