본문 바로가기
프로그래머스

도둑질 C++

by paysmile 2021. 10. 6.

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

 

코딩테스트 연습 - 도둑질

도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한

programmers.co.kr

#include <string>
#include <vector>

using namespace std;

int solution(vector<int> money) {
    int answer = 0;
    int sz = money.size();
    int dp[sz]; // 0번집 포함
    int dp2[sz]; // 0번집 미포함
    
    dp[0] = money[0];
    dp[1] = money[0];
    
    dp2[0] = 0;
    dp2[1] = money[1];
    
    for(int i=2; i<sz-1; i++){
        dp[i] = max(dp[i-2] + money[i],dp[i-1]);
        dp2[i] = max(dp2[i-2] + money[i],dp2[i-1]);
    }
    dp2[sz-1] = max(dp2[sz-3]+money[sz-1],dp2[sz-2]);
        
    answer = max(dp[sz-2],dp2[sz-1]);
    return answer;
}

'프로그래머스' 카테고리의 다른 글

거리두기 확인하기 C++  (0) 2021.12.03
징검다리 건너기 C++  (0) 2021.10.06
셔틀버스 C++  (0) 2021.10.03
다단계 칫솔 C++  (0) 2021.10.03
불량 사용자 C++  (0) 2021.10.02