https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/
최대 1주의 주식만을 소유할 수 있고 주식을 팔고 당일에 바로 다시 살 수 있으므로 주식을 사고 이익이 발생하면 바로 팔 때 최대의 수익을 내는 문제이다.
nums를 탐색하며 탐색하는 숫자보다 더 큰 숫자가 있으면 빼서 나오는 차익들을 더하면 되는 문제이다.
첨에 테.케1을 보고 이렇게 생각을 하다가 테.케2를 보고 내가 생각한게 맞나 싶었는데 테케2설명에도 5-1=4라고 나와있었기 떄문에..
그래서 풀이를 찾아보다가
1일에 1원에 사고, 5일에 5원에 팔아 4의 이익을 내는 것이 최적인 것 같지만, 이는 1일에 1원에 사고 2일에 2원에 팔아 1(2-1)의 이익을 내고, 2일에 2원에 사고 3일에 3원에 팔아 1(3-2)의 이익을 내고, 3일에 3원에 사고 4일에 4원에 팔아 1(4-3)의 이익을 내고, 4일에 4원에 사고 5일에 5원에 팔아 1(5-4)의 이익을 내 총 4의 이익을 내는 방법
아리는 말 보고 이해함
class Solution:
def maxProfit(self, prices: List[int]) -> int:
prices_sum = []
for i in range(len(prices)-1):
if prices[i]<prices[i+1]:
prices_sum.append(prices[i+1]-prices[i])
return sum(prices_sum)
Runtime: 82 ms, faster than 53.29% of Python3 online submissions for Best Time to Buy and Sell Stock II.
Memory Usage: 15.3 MB, less than 22.95% of Python3 online submissions for Best Time to Buy and Sell Stock II.
22.06.27
다시 복습했을때 생각보다 어렵지는 않았다.