인프런 커뮤니티 질문&답변

이명운님의 프로필 이미지
이명운

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

6-L

6-L 문제 질문

해결된 질문

작성

·

175

0

안녕하세요 큰돌 선생님 좋은강의 감사합니다

강의를 보다가 의문점이 드는부분이 있습니다.

3

9.9 0.1 2 를 입력하면

2.000을 출력하는데, 9.9를 출력해야하는것 아닌가요?

가장 첫번째 인덱스에 아무것도 곱하지 않은게 클 경우를 체크안하는 로직이 아닌지 궁금합니다!

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 명운님 ㅎㅎ

해당 부분 확인했습니다.

저보다 똑똑하시네요..

맞는 말씀이며 해당부분이 반례입니다.

코드는 다음과 같이 고쳐야 합니다.

#include <bits/stdc++.h>
using namespace std; 
int n;
double psum[10001], a[10001], ret, b;
int main(){
	cin >> n; 
	for(int i = 0; i < n; i++) cin >> a[i]; 
	double b = a[0];
	ret = b;
	for(int i = 1; i < n; i++){
		if(a[i] > b * a[i])b = a[i];
		else b *= a[i];
		ret = max(b, ret);
	} 
	printf("%.3lf", ret + 0.00001); 

	return 0;
}

해당 부분에 대한 강의설명추가, 코드 수정을 진행했으며

다음과 같이 해당 부분에 대한 데이터 추가를 요청했습니다.

https://www.acmicpc.net/board/view/127209

 

틀린 부분을 찾아주셔서 진심으로 감사의 말씀을 드립니다. ㅎㅎ

너무 훌륭하십니다..

 

감사합니다.

이명운님의 프로필 이미지
이명운
질문자

매번 좋은강의와 코드에 제가 더 감사합니다!

이명운님의 프로필 이미지
이명운

작성한 질문수

질문하기