반응형
[문제 출처]
https://www.acmicpc.net/problem/2670
2670번: 연속부분최대곱
첫째 줄은 나열된 양의 실수들의 개수 N이 주어지고, 그 다음 줄부터 N개의 수가 한 줄에 하나씩 들어 있다. N은 10,000 이하의 자연수이다. 실수는 소수점 첫째자리까지 주어지며, 0.0보다 크거나
www.acmicpc.net
[문제 풀이]
dp라는 이름의 리스트에 i-1번째와 i번째의 곱과 i번째 수 중에 더 큰 값을 저장한다.
dp에 값을 다 채운 후에 가장 큰 값을 출력한다.
* 문제에서 결과를 소수점 넷째 자리에서 반올림하여 셋째 자리까지 출력하라고 하였기에
처음에는 round(max(dp), 3)를 사용했는데 틀렸고 아래 코드의 출력으로 바꿨을 때 정답이 나왔다.
import sys
input = sys.stdin.readline
n = int(input())
data = []
for _ in range(n):
data.append(float(input()))
dp = [0 for _ in range(n)]
dp[0] = data[0]
for i in range(1, n):
dp[i] = max(dp[i-1]*data[i], data[i])
print('%0.3f' % max(dp))
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 2168 타일 위의 대각선 (0) | 2022.07.08 |
---|---|
[python/파이썬] 백준 13699 점화식 (0) | 2022.07.07 |
[python/파이썬] 백준 15489 파스칼 삼각형 (0) | 2022.07.06 |
[python/파이썬] 백준 14400 편의점 2 (0) | 2022.07.06 |
[python/파이썬] 백준 14247 나무 자르기 (0) | 2022.07.05 |