[프로그래머스] 땅따먹기 자바(Java)
본문 바로가기
알고리즘 풀이

[프로그래머스] 땅따먹기 자바(Java)

by IYK2h 2023. 4. 8.
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/12913

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이

  • 우선순위 큐 사용

코드

import java.util.*;

class Solution {
    int solution(int[][] land) {
        int answer = 0;

        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][1], Math.max(land[i - 1][2], land[i - 1][0]));
        }

        // 마지막 칸 값만 저장
        int[] tmp = land[land.length-1];
        // 오름차순 정렬
        Arrays.sort(tmp);
        // 가장 큰 값
        return tmp[tmp.length-1];
    }
}

 

728x90

댓글