[파이썬] 백준 2670 : 연속부분최대곱 (실버4)
2670번: 연속부분최대곱
첫째 줄은 나열된 양의 실수들의 개수 N이 주어지고, 그 다음 줄부터 N개의 수가 한 줄에 하나씩 들어 있다. N은 10,000 이하의 자연수이다. 실수는 소수점 첫째자리까지 주어지며, 0.0보다 크거나
www.acmicpc.net
문제
풀이
방향성 생각
1차원 DP를 만든다. 초기값은 arr의 첫 번째 값.
두 번째 값부터는 arr[i+1]과 dp[i]*arr[i+1] 값을 비교해준다. 큰 것을 DP에 할당
전체코드
n = int(input())
arr = [float(input()) for _ in range(n)]
dp = [0]*n
dp[0] = arr[0]
for i in range(n-1):
dp[i+1] = max(dp[i]*arr[i+1],arr[i+1])
print(f'{max(dp):.3f}')
'Algorithm > Dynamic Programming' 카테고리의 다른 글
[파이썬] 백준 1563 : 개근상 (골드4) (0) | 2023.08.06 |
---|---|
[파이썬] 프로그래머스 : 에어컨 (Lv.3) (0) | 2023.08.04 |
[파이썬] 백준 21317 : 징검다리 건너기 (실버1) (0) | 2023.07.30 |
[파이썬] 백준 11057 : 오르막 수 (실버1) (0) | 2023.07.30 |
[파이썬] 백준 2156 : 포도주 시식 (실버1) (0) | 2023.07.24 |
[파이썬] 백준 17404 : RGB거리 2 (골드4) (0) | 2023.07.22 |
[파이썬] 백준 1149 : RGB거리 (실버1) (0) | 2023.07.20 |
댓글