[이것이 코딩 테스트다] 개미 전사

고재욱·2021년 10월 13일
0

❓ 문제 ❓
인접하지 않은 식량 창고에서 가장 많은 식량의 값을 약탈해라

💯 문제 풀이 💯
max(인접한 식량 창고, 인접하지 않은 식량 창고 + 현재 식량창고)

#include <iostream>
#include <algorithm>
using namespace std;
int arr[101];
int dp[101];
int main() {
	int n; cin >> n;
	for (int i = 1; i <= n; i++)
		cin >> arr[i];

	dp[1] = arr[1];
	dp[2] = max(arr[2], dp[1]);
	for (int i = 3; i <= n; i++) {
		dp[i] = max(dp[i - 1], dp[i - 2] + arr[i]);
	}
	cout << dp[n];
}

0개의 댓글