import java.util.*;
class Solution {
int solution(int[][] land) {
int answer = 0;
//열의 길이 column - 3
System.out.println(land.length);
//행의 크기 row - 4
System.out.println(land[0].length);
//MAX 값 구하기
for(int i=1; i<land.length; i++)
{
//같은 열을 못찾으니 그걸 제외하고 Math.max로 최댓값을 탐색하여 누적해 더해줌
land[i][0] += Math.max(land[i-1][1], Math.max(land[i-1][2], land[i-1][3]));
land[i][1] += Math.max(land[i-1][0], Math.max(land[i-1][2], land[i-1][3]));
land[i][2] += Math.max(land[i-1][0], Math.max(land[i-1][1], land[i-1][3]));
land[i][3] += Math.max(land[i-1][0], Math.max(land[i-1][1], land[i-1][2]));
}
//Arrays.sort로 함수 정렬 - 2차원 배열은 정렬이 안되기에 번지수를 지정해주어야 함
Arrays.sort(land[land.length-1]);
//가장 큰 값이 맨 뒤로 가 있음
answer = land[land.length-1][3];
return answer;
}
}
※ 참고자료
'프로그래밍 > Algorithm' 카테고리의 다른 글
2022년 05월 13일 프로그래머스 - 가장 큰 정사각형(다이나믹 프로그래밍, DP) (0) | 2022.05.13 |
---|---|
2022년 05월 12일 프로그래머스 - 나머지 한 점 (0) | 2022.05.12 |
2022년 05월 11일 프로그래머스 - 순열 검사 (0) | 2022.05.11 |
2022년 05월 10일 프로그래머스 - 자릿수 더하기 (0) | 2022.05.10 |
댓글