나냐 전이냐. 보통 내가 1보다 크면 무조건 큰 값이 나온다.
근데 만약 1보다 작은 값이 계속되어 1 미만으로 떨어질 때
나보다 작아지면 굳이 그 연속 부분을 끌고갈 필요가 없다.
import sys
input = sys.stdin.readline
N = int(input())
li = [float(input()) for _ in range(N)]
for i in range(1, N):
li[i] = max(li[i], li[i]*li[i-1])
print(f"{max(li):.3f}")
스터디 다른분이 소개해주신 카데인 알고리즘.
import sys
input = sys.stdin.readline
N = int(input())
cur = 1
answer = 1
max_num = 0
for _ in range(N):
num = float(input())
max_num = max(num, max_num)
cur = max(num, cur*num)
answer = max(answer, cur)
if answer > 1:
print("{:.3f}".format(answer))
else:
print("{:.3f}".format(max_num))
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 2164 카드2 (0) | 2021.10.19 |
---|---|
[백준][Python] 16507 어두운 건 무서워 (0) | 2021.10.18 |
[백준][Python] 20164 홀수 홀릭 호석 (0) | 2021.10.18 |
[백준][Python] 19948 음유시인영재 (0) | 2021.10.18 |
[백준][Python] 1374 강의실 (0) | 2021.10.16 |