[Leet Code] Best time to Buy and Sell Stock II
2024. 2. 9. 15:40ㆍProgrammers
728x90
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 |