BOJ 문제풀이

백준 2579번 c++ 풀이

koreasunoo 2021. 8. 17. 01:22

안녕하세요 오늘은 동적계획법으로 문제를 풀어보도록 하겠습니다. 

 

코드:

#include <bits/stdc++.h>
using namespace std;
int result[301] = {0, };
int score[301] = {0, };
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int N;
	cin>>N;
	for(int i = 1; i<=N; ++i){
		int x;
		cin>>x;
		score[i] = x;
		
	}
	result[1] = score[1];
	result[2] = score[1] + score[2];
	result[3] = max(score[1] + score[3], score[2] + score[3]);
	for(int i= 4; i<=N; ++i){
		result[i] = max(result[i-3] + score[i] + score[i-1], result[i-2] + score[i]);
	}
	cout<<result[N]<<"\n";
}

'BOJ 문제풀이' 카테고리의 다른 글

백준 9461 c++ 풀이  (0) 2021.08.31
백준 15649 c++  (0) 2021.08.22
백준 17219 c++ 풀이  (0) 2021.08.17
백준 1764번 c++ 풀이  (0) 2021.08.17
백준 1620번 c++ 풀이  (0) 2021.08.17