[프로그래머스(Programmers)] 도둑질 (java, 동적계획법)

0
post-thumbnail

안녕하세요. 오늘은 프로그래머스의 도둑질 문제를 풀어보도록 하겠습니다~~!


문제링크

https://programmers.co.kr/learn/courses/30/lessons/42897

전체 코드

public int solution(int[] money) {
        int answer = 0;
        int[] dp1 = new int[money.length-1];
        int[] dp2 = new int[money.length];

        dp1[0] = money[0];
        dp1[1] = money[0];
        dp2[1] = money[1];

        for (int i = 2; i < dp1.length; i++) {
            dp1[i] = Math.max(dp1[i - 2] + money[i], dp1[i - 1]);
            dp2[i] = Math.max(dp2[i - 2] + money[i], dp2[i - 1]);
        }

        answer = Math.max(dp1[dp1.length - 1], dp2[dp2.length - 1]);
        return answer;
    }

[참고한 곳]
https://yubh1017.tistory.com/39

0개의 댓글