반응형
4424 : 연속 부분 최대곱 해결
시간 제한: 1 Sec 메모리 제한: 512 MB
제출: 1380 해결 문제 수: 602
www.codeup.kr/problem.php?id=4424
문제1)
N개의 양의 실수가 있을 때, 한 개 이상의 연속된 수들의 곱이 최대가 되는 부분을 찾아, 그 곱을 출력하는 프로그램을 작성하시오. 예를 들어 아래와 같이 8개의 양의 실수가 주어진다면,
1.1 | 0.7 | 1.3 | 0.9 | 1.4 | 0.8 | 0.7 | 1.4 |
색칠된 부분의 곱이 최대가 되며, 그 값은 1.638이다.
입력
첫째 줄은 나열된 양의 실수들의 개수 N이 주어지고, 그 다음 줄부터 N개의 수가 한 줄에 하나씩 들어 있다. N은 10,000 이하의 자연수이다.
출력
계산된 최대값을 소수점 이하 넷째 자리에서 반올림하여 소수점 이하 셋째 자리까지 출력한다.
입력 예시 예시 복사
8 1.1 0.7 1.3 0.9 1.4 0.8 0.7 1.4
출력 예시
1.638
#include <iostream>
using namespace std;
double arr[10005];
double dd[10005];
int main(void)
{
int n;
cin >> n;
arr[0] = 1;
for (int i = 1; i <= n; i++)
{
cin >> arr[i];
}
double max;
dd[0] = 1;
max = 0;
for (int i = 1; i <= n; i++)
{
if (dd[i - 1] < 1)
dd[i] = 1;
else
dd[i] = dd[i - 1];
dd[i] *= arr[i];
if (max < dd[i])
max = dd[i];
}
printf("%.3f", max);
// cout << max;
}
반응형
'C언어' 카테고리의 다른 글
백준 2217번 로프 : 이번 그리디 문제 쉽다 (0) | 2021.02.19 |
---|---|
백준 11047번 동전0 문제. 그리디 시작!! (0) | 2021.02.18 |
백준 3933 : 라그랑주의 네 제곱수 정리 (1) | 2021.02.10 |
백준 1932 정수삼각형 : 역으로 올라가기 (0) | 2021.02.08 |
백준 11659번 구간합 구하기 4 : 일차원 배열로 미리 저장하기 (0) | 2021.02.02 |
vscode 한번에 단어 바꾸기 (0) | 2021.01.28 |
코드업 3704 계단오르기2 (0) | 2021.01.26 |
1965 상자넣기 : 가장 길게 커지는 수 랑 같은 풀이임 (0) | 2021.01.25 |