LeetCode : Best Time to Buy and Sell Stock (Easy)

이동현·2021년 6월 12일
0
post-thumbnail

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 리스트 내에 차익이 가장 큰 값을 리턴하는 방향으로 문제를 해결하였습니다.
profile
아직 배울게 많은 주니어 Data Engineer 입니다 :)

0개의 댓글