땅따먹기

이준경·2021년 5월 23일
0

<나의풀이>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.*;
class Solution {  
   public int solution(int[][] land) {
       for(int i=0; i<land.length-1; i++){
           land[i+1][0+= Math.max(Math.max(land[i][1], land[i][2]), land[i][3]);
           land[i+1][1+= Math.max(Math.max(land[i][0], land[i][2]), land[i][3]);
           land[i+1][2+= Math.max(Math.max(land[i][1], land[i][0]), land[i][3]);
           land[i+1][3+= Math.max(Math.max(land[i][1], land[i][2]), land[i][0]);
       }
 
       int[] answer = land[land.length-1];
       Arrays.sort(answer);
 
       return answer[answer.length-1];
   }
}
cs
  1. 현재 열의 1번째 수와 다음열의 1번째 수를 제외한 수중 가장 큰 수를 더한 값을 다음열 1번째에 대입
  2. 1번을 4번재 수까지 반복 대입.
  3. 2번을 LAND.LENGTH-1까지 반복
  4. answer에 land[land.length-1]을 대입
  5. 정렬후 answer의 마지막 수를 리턴

0개의 댓글

관련 채용 정보