Algorithm/Programmers
[프로그래머스] 도둑질
sirius
2021. 3. 8. 11:17
https://school.programmers.co.kr/learn/courses/30/lessons/42897
첫번째 집을 훔칠 경우 - 마지막 집을 훔칠 수 없음
두번째 집부터 훔칠 경우 - 마지막 집을 훔칠 수 있음
import java.util.*;
class Solution {
public int solution(int[] money) {
int answer = 0;
int[] dp = new int[money.length];
int[] dp2 = new int[money.length];
dp[0] = money[0];
dp[1] = money[0];
dp2[0] = 0;
dp2[1] = money[1];
for(int i=2; i< money.length; i++) {
dp[i] = Math.max(dp[i - 1], dp[i - 2] + money[i]);
dp2[i] = Math.max(dp2[i - 1], dp2[i - 2] + money[i]);
}
answer = Math.max(dp[money.length-2], dp2[money.length-1]);
return answer;
}
}