Programming/leetcode

121. Best Time to Buy and Sell Stock

홍열 2021. 2. 2. 23:30
728x90

특정 시점에 주식을 사서 최대 이익을 보면서 파는 문제 

사실 for문 두번으로도 접근이 가능하나, 시간 초과가 난다. 

 

for문 한번으로 진행하면서 최소값을 찾고, 이후에 최소값을 뺴보면서 최대 수익금을 찾는다.

지나온 시점은 상관이 없으므로 무시한다. 

 

    def maxProfit(self, prices: List[int]) -> int:
        profit = 0
        _min = sys.maxsize
        
        for item in prices:
            _min = min(_min, item)
            profit = max(profit, item-_min)
        
        return profit