잘 알아두어야 하는 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 |