LeetCode[ Easy | Python ] BestTime to Buy and Sell Stock
업데이트:
링크
풀이
주어진 배열 prices
에서 최적의 시기에 매입하고 매각하여 이익을 최대화해야 하는 문제.
- 매입은 가장 작은 값에서 수행되어야 하기 때문에, 큰 수
float(inf)
로 초기화한다. - 매각은 가장 큰 값에서 수행되어야 하기 때문에, 작은 수
0
으로 초기화 한다. prices
를 순회하며 다음 동작을 수행한다.- 현재 탐색가(
prices[i]
) 에서 매입가를 뺀 현재 수익과 이전의 수익을 비교하여 더 큰쪽을 현재 이익으로 취한다. - 현재 탐색가와 이전 매입가를 비교해 더 작은 쪽을 매입한다.
- 현재 탐색가(
- 마지막 까지 남은 현재 이익을 반환한다.
코드
Python
class Solution(object):
def maxProfit(self, prices):
buy = float('inf')
cur = 0
for i in range(len(prices)):
cur = max(cur, prices[i] - buy)
buy = min(buy, prices[i])
return cur
댓글남기기