SMALL

안녕하세요 오늘은 동적계획법으로 문제를 풀어보도록 하겠습니다.
코드:
#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";
}
LIST
'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 |