ALGORITHM/PYTHON

백준 BAEKJOON 25644번 최대 상승 [PYTHON/파이썬]

칼코
반응형

백준 BAEKJOON 25644번 최대 상승 [PYTHON/파이썬]


<문제 출처>

https://www.acmicpc.net/problem/25644

 

25644번: 최대 상승

미래를 예측하는 능력이 있는 정균이는 앞으로 $N$일간 ANA 회사의 주가가 어떻게 변하는지 정확히 예측할 수 있다. 정균이는 예측한 결과를 바탕으로 ANA 회사의 주식 한 주를 적당한 시점에 사고

www.acmicpc.net

백준 25644번

<풀이>

주식을 사면 샀던 날에 바로 팔 수도 있지만 (이익 : 0원)

샀던 날 이후로 팔 수 있다. (이익 : i+? 번째 날 - i 번째 날)

그중 이익이 가장 큰 값에 팔게 끔 구현해주면 된다.

이익을 최댓값으로 맞추기 위해서 리스트를 뒤에서부터 진행시켜

가장 비싸게 팔 수 있는 날을 갱신하고 가장 싸게 살 수 있는 날을 찾아서 빼주면 최댓값을 구할 수 있다.

 

<코드>

import sys
input = sys.stdin.readline

N = int(input())
ANA = list(map(int, input().split()))
benefit, result = 0, 0	# 이익 최댓값, 결과값 0으로 초기화

for i in range(N-1, -1, -1) :	# 리스트를 뒤에서 진행
    benefit = max(benefit, ANA[i])	# 주가 최댓값 찾기
    result = max(result, benefit - ANA[i])	# 주가 최댓값 - i번째 주가

print(result)
반응형