[JAVA 문제 풀이] 342. 땅따먹기

프로그래머스 (12913)
Stupefyee's avatar
Jun 25, 2025
[JAVA 문제 풀이] 342. 땅따먹기
notion image
 

내가 작성한 코드

class Solution { int solution(int[][] land) { int n = land.length; // 두 번째 행부터 마지막 행까지 반복 for (int i = 1; i < n; i++) { for (int j = 0; j < 4; j++) { // 열은 항상 4개 int max = 0; // 바로 위 행에서 같은 열을 제외한 가장 큰 값을 찾음 for (int k = 0; k < 4; k++) { if (j == k) continue; // 같은 열은 연속해서 밟을 수 없으므로 제외 max = Math.max(max, land[i - 1][k]); // 최댓값 갱신 } // 현재 위치에 위에서 선택된 최댓값을 누적 land[i][j] += max; } } int answer = 0; // 마지막 행에서 최대값을 찾아 반환 for (int i = 0; i < 4; i++) { answer = Math.max(answer, land[n - 1][i]); } return answer; } }
Share article

stupefyee