0. Overview
1. Problem
2. Solution
def maxProfit(prices: List[int]) -> int:
MIN_PRICE, MAX_PRICE = -1, 100000
candidates = []
if len(prices) == 1 :
return 0
buy, sell = MAX_PRICE, MIN_PRICE
for price in prices :
if price < buy :
if buy != MAX_PRICE and sell != MIN_PRICE :
candidates.append((buy, sell))
buy, sell = price, MIN_PRICE
continue
if sell < price :
sell = price
candidates.append((buy,sell))
answer = list(map(lambda x: x[1] - x[0], candidates))
return max(max(answer),0)
3. Review
prices
내 높은 차익을 갖고 있는 (buy, sell)
구간을 구하고 candidates
에 저장한 후, candidates
리스트 내에 차익이 가장 큰 값을 리턴하는 방향으로 문제를 해결하였습니다.