반응형
문제
미래를 예측하는 능력이 있는 정균이는 앞으로 일간 ANA 회사의 주가가 어떻게 변하는지 정확히 예측할 수 있다. 정균이는 예측한 결과를 바탕으로 ANA 회사의 주식 한 주를 적당한 시점에 사고 적당한 시점에 팔아서 최대한의 이득을 얻으려고 한다.
ANA 회사의 앞으로 일간의 주가를 a1,a2,..,an 이라고 하자. 정균이가 번째 날에 주식을 사고, 번째 날에 판다면 만큼의 이득을 얻을 수 있다. 정균이는 자금이 넉넉하기 때문에 주가가 아무리 높아도 주식을 살 수 있고, 상황이 여의치 않을 경우 사자마자 바로 팔 수도 있다.
앞으로 일간 ANA 회사의 주가가 주어졌을 때, 정균이가 주식 한 주를 적당한 시점에 사고 적당한 시점에 팔아서 얻을 수 있는 최대 이득은 얼마일까?
문제풀이
n=int(input())
rate=list(map(int,input().split()))
#01
max_rate,res=0,0
for i in range(n-1,-1,-1):
#02
max_rate=max(max_rate,rate[i])
res=max(res,max_rate-rate[i])
print(res)
- #01 : 최대가격과 결과값을 초기값 0으로 저장한다.
참고로 최대가격은 for문을 역으로 순차적으로 돌며 갱신해야 한다.
EX) 3 2 1일 때 처음 최대가격을 바로 3으로 저장하면 res 값이 2가 된다. 정답은 0
- #02 : for문을 역으로 돌며, max_rate 값과 res 값을 계속해서 갱신해준다.
최종으로 구한 res값을 출력한다.
'프로그래밍 > 백준' 카테고리의 다른 글
[알고리즘] 백준 5671 파이썬 - 호텔 방 번호 (1) | 2023.04.06 |
---|---|
[알고리즘] 백준 25206 파이썬 - 너의 평점은 (3) | 2023.04.05 |
[알고리즘] 백준 2670 파이썬 - 연속부분최대곱 (2) | 2023.04.03 |
[알고리즘] 백준 1822 파이썬 - 차집합 (2) | 2023.04.02 |
[알고리즘] 백준 5636 파이썬 - 소수 부분 문자열 (2) | 2023.04.01 |