C++ ) 2670 연속부분최대곱

Blue·2023년 5월 18일
0

접근

평소 알고 있는 부분최대합이나 최대곱을 사용하여 풀었다.
다만 다른것은 실수였기에 Double 로 배열을 선언해주고 현재값과 그 전값의 곱한 값과 현재값 중 큰값을 가지고 마지막까지 DP 로 가져가면 된다.

코드

#include <iostream>
#include <algorithm>
using namespace std;

double arr[10004];
double ret;
int N;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    
    cin >> N;
    
    for(int i=0;i<N;i++) {
        cin >> arr[i];
    }
    
    ret=arr[0];
    for(int i=1;i<N;i++) {
        arr[i]=max(arr[i],arr[i]*arr[i-1]);
        ret=max(ret,arr[i]);
    }
    
    printf("%.3lf",ret);
    
    return 0;
}
profile
할수있다가 아닌 해야한다!!

0개의 댓글

관련 채용 정보