백준/증가수열 & 투포인터

[백준 2670번 / C++ ] 연속부분최대곱

배발자 2022. 2. 8.

목차

    반응형

    [백준 2670번 / C++ ] 연속부분최대곱

    1. double 타입의 벡터 배열 생성.

    2. 벡터 첫번째 원소를 가지고 있는 b라는 변수 생성.

    3. 벡터의 사이즈만큼 반복문 돌리면서 연속된 값의 곱셈이 현재 위치의 벡터 원소보다 작으면 b 변수에 현재 벡터 원소 값 저장. 그렇지 않다면 연속된 값 곱하기. 

    4. reuslt 값이 최대값인 것을 계속 갱신하기.

    
      
    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    int main() {
    int n; cin >> n;
    vector <double> v(n,0);
    for (int i = 0; i < n; i++) {
    cin >> v[i];
    }
    double b = v[0];
    double result = 0;
    for (int i = 1; i < n; i++) {
    if (v[i] > v[i]*b)b = v[i];
    else {
    b *= v[i];
    }
    result = max(result, b);
    }
    printf("%.3lf", result );
    return 0;
    }

     

     

    2670번: 연속부분최대곱

    첫째 줄은 나열된 양의 실수들의 개수 N이 주어지고, 그 다음 줄부터 N개의 수가 한 줄에 하나씩 들어 있다. N은 10,000 이하의 자연수이다. 실수는 소수점 첫째자리까지 주어지며, 0.0보다 크거나...

    www.acmicpc.net

     

    반응형

    댓글