(Java) 프로그래머스 땅따먹기

2021. 12. 15. 13:43·코딩 테스트

처음 문제를 봤을 때 DFS로 구현해야겠다는 생각을 했다.

아직 DFS에 적응이 된 게 아니어서 더듬더듬 구현했는데 시간 초과 판정을 받았다...

아마 n이 100,000 정도로 커지면서 시간 초과가 난것으로 생각된다..

풀이 방법이 떠오르지 않아서 결국 검색을 통해 힌트를 얻었다.

 

DP를 이용하여 간단히 풀었다...

코드를 이해하는데는 오래 걸리지 않았지만 익숙하지 않기도 하고.. 비슷한 문제를 만났을 때 DP로 해결할 수 있을까...

따로 정리가 필요하다고 느꼈다.


최종 코드

import java.util.Arrays;
class Solution {
    int solution(int[][] land) {
        int answer = 16;
        
        // DP를 이용하여 최댓값 구하기
        for(int i=1; i<land.length; i++) {
            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][1], Math.max(land[i-1][0], land[i-1][3]));
            land[i][3] += Math.max(land[i-1][0], Math.max(land[i-1][1], land[i-1][2]));
        }

        int[] temp = land[land.length-1];
        Arrays.sort(temp);
        answer = temp[3];

        return answer;
    }
}

'코딩 테스트' 카테고리의 다른 글

(Java) 프로그래머스 H-Index  (0) 2021.12.20
(Java) 프로그래머스 가장 큰 정사각형 찾기  (0) 2021.12.20
(Java) 프로그래머스 올바른 괄호  (0) 2021.12.15
(Java) 프로그래머스 다음 큰 숫자  (0) 2021.12.15
(Java) 프로그래머스 최댓값과 최솟값 (Lv 2)  (0) 2021.12.15
'코딩 테스트' 카테고리의 다른 글
  • (Java) 프로그래머스 H-Index
  • (Java) 프로그래머스 가장 큰 정사각형 찾기
  • (Java) 프로그래머스 올바른 괄호
  • (Java) 프로그래머스 다음 큰 숫자
로승리
로승리
  • 로승리
    Roy's Blog
    로승리
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Issuefy
      • Language
      • Spring
      • Database
      • Network
      • Kubernetes
      • AWS
      • 코드스쿼드
      • 코딩 테스트
      • 생각정리
      • 국비지원
      • 회고
      • 컨퍼런스, 세미나
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
로승리
(Java) 프로그래머스 땅따먹기
상단으로

티스토리툴바