관리 메뉴

기억을 위한 기록들

[백준 2156: 포도주 시식] - C++ 본문

Coding Test - cpp/DP

[백준 2156: 포도주 시식] - C++

에드윈H 2021. 2. 5. 13:49

www.acmicpc.net/problem/2156

 

2156번: 포도주 시식

효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규

www.acmicpc.net

#include<iostream>
using namespace std;
int arr[10001];
int dp[10001];

#define  max(a,b,c) (a > b) ? (a > c) ? a : c : (b > c) ? b : c
int main()
{
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> arr[i];
	}


	dp[1] = arr[1];
	dp[2] = arr[1] + arr[2];

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

	cout << dp[n] << endl;
	return 0;
}

'Coding Test - cpp > DP' 카테고리의 다른 글

[백준 13301: 타일 장식물] - C++  (0) 2021.02.17
[재귀 곱셈 C++]  (0) 2021.02.07
[백준 1904: 01타일] - C++  (0) 2021.02.02
[백준 9184: 신나는 함수 실행] - C++  (0) 2021.02.02
[백준 9461: 파도반 수열] - C++  (0) 2021.02.02