잘 알아두어야 하는 dp 문제
풀이
이전의 정보가 앞으로 쓸모 있을 때만 사용해주는 방법을 사용한다.
해당 경우를 누적시키며 진행하면 답을 구할 수 있다.
시간 복잡도 : $O(n)$
소요 시간 : 측정 불가
아쉬운 점 : 분명 쉬운 문제인데 풀이 떠올리는 게 쉽지 않더라..
전체적인 감상 : 이정도는 당연하다는 듯이 알고 있어야 한다 고! 생각한다.
#include<bits/stdc++.h>
#define fast_io ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
double ar[10010], ans = 0;
int main(){
fast_io;
int n;
cin>>n;
for(int i=0;i<n;i++) cin>>ar[i];
ans = ar[0];
for(int i=1;i<n;i++){
if(ar[i] * ar[i-1] >= ar[i]){
ar[i] = ar[i-1] * ar[i];
}
ans = max(ans, ar[i]);
}
cout<<fixed;
cout.precision(3);
cout<<ans;
cout<<'\n';
}
'백준 문제 해설' 카테고리의 다른 글
24262 알고리즘 수업 - 알고리즘의 수행 시간 1 (C++) (0) | 2022.10.14 |
---|---|
5789 한다 안한다 (C++) (0) | 2022.10.13 |
25191 치킨댄스를 추는 곰곰이를 본 임스 (C++) (0) | 2022.10.12 |
1743 음식물 피하기 (C++) (0) | 2022.10.11 |
3653 영화 수집 (C++) (0) | 2022.10.09 |
13241 최소공배수 (C++) (0) | 2022.10.08 |
7578 공장 (C++) (0) | 2022.10.07 |
5856 Party Invitations (C++) (0) | 2022.10.06 |