-
[Leet Code] Best time to Buy and Sell Stock IIProgrammers 2024. 2. 9. 15:40728x90
class Solution(object): def maxProfit(self, prices): total = 0 buy = prices[0] # 산 주식을 리스트의 첫번째 원소로 지정 for i in range(1, len(prices)): if prices[i] - buy > 0: # 현재 인덱스에서 주식을 팔았을 때 이득이면 팔고, 총 수익에 더해준다 total += prices[i] - buy buy = prices[i] else: buy = min(buy, prices[i]) return total
최저 값을 buy로 선언 후, 리스트 내 원소들과 비교하며 양수면 더해주고, 아니면 최저값만 갱신해주는 연산을 처리한다
[1,2,3,4,5]를 예시로 든다면,
# buy = 1 1 - 1 = 0 이므로 total 0, buy=1 유지 # buy 2 2 - 1 > 0 이므로 total 1, buy = 2 # buy 3 3 - 2 이므로 total 2, buy = 3 # buy 4 4 - 3 이므로 total 3, buy = 4 # buy 5 5 - 4 이므로 total 4, buy = 4
728x90'Programmers' 카테고리의 다른 글
[2644]촌수 계산 (0) 2024.04.10 [SQL] 노선별 평균 역 사이 거리 조회하기 (0) 2024.03.10 DP 에러 찾기 (0) 2023.09.03 Dynamic Programming 문제풀이 (0) 2023.09.02 코드 해석 _ LCS(9251) (0) 2023.08.30