프로그래머스 - 도둑질

J-Keonho·2020년 9월 25일
0

해당 알고리즘 자료는 제가 직접 푼 것도 있지만 다른 분들의 풀이과의 비교를 통해 더 나은 알고리즘을 공부하기 위해 정리한 것들입니다.

프로그래머스 - 도둑질

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

풀이 : DP 알고리즘을 통해 해당 위치에 따른 최대 Money를 구한다.

class Solution {
    public int solution(int[] money) {
        int[][] pick = new int[2][money.length];
	pick[0][0] = money[0];
	pick[0][1] = money[0];
	pick[1][1] = money[1];

	for (int i = 2; i < money.length; i++) {
		pick[0][i] = Math.max(pick[0][i - 2] + money[i], pick[0][i - 1]);
		pick[1][i] = Math.max(pick[1][i - 2] + money[i], pick[1][i - 1]);
	}
       return Math.max(pick[0][pick[0].length-2], pick[1][pick[1].length-1]);
    }
}
profile
안녕하세요.

0개의 댓글