Search

Best Time to Buy and Sell Stock

문제 설명 : 주식의 가격을 리스트로 제공되었을 때, 가장 크게 얻을 수 있는 차익을 반환
풀이 방법
차익을 가장 크게 하기 위해서는 최저 가격과 가장 크게 차이나는 시점에 팔아야한다.
따라서, 매 가격을 순회할때마다 최저 가격 여부와 차익을 갱신하는 방향으로 진행했다.
성공 코드
class Solution: def maxProfit(self, prices: List[int]) -> int: # 최저 가격을 설정 min_price = prices[0] # 가격을 순회하면서, 가장 높은 이득의 가격을 설정 result = 0 # 제공된 Price 모두 순회 -> O(N) for price in prices: # 최저 가격 확인 min_price = min(min_price, price) # 지금까지의 최저 가격 - 현재 가격이 가장 높은 이득일 때 반환 값 재설정 if price - min_price > result: result = price - min_price return result
Python
복사