반응형
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
반응형
'백준 > 증가수열 & 투포인터' 카테고리의 다른 글
[백준 1911번 / C++] 흙길 보수하기 (0) | 2022.02.09 |
---|---|
[백준 2170번 / C++] 선 긋기 (0) | 2022.02.09 |
[백준 3273번 / C++] 두 수의 합 (0) | 2022.01.27 |
[백준 1644번 / C++] 소수의 연속합 (0) | 2022.01.19 |
[백준 7795번 / C++] 먹을 것인가 먹힐 것인가 (0) | 2022.01.18 |
댓글