122. Best Time to Buy and Sell Stock II

Taesoo Kim·2023년 2월 6일
0

CrackingAlgorithm

목록 보기
20/36

문제링크: https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/

Problem

전에 풀었던 주식 문제와 똑같지만, 전의 문제는 수익을 낼 수 있는 기회가 한번이라면, 이번 문제는 자유롭게 사고 파는게 가능합니다. 단, 주식을 여러개 사 들고있을수는 없고, 한개씩만 사고 팔수 있습니다.

관련문제: 121. Best Time to Buy and Sell Stock

Approach

처음 문제를 봤을땐, 여러가지 경우를 고려할 수 있는 DP문제라고 생각했어요. 근데 DP의 핵심은 점화식이라고 생각하여 계속 문제의 점화식을 생각하는데, 잘 안나와서, 혹시 그냥 그리디인가..? 싶어 도전해봤더니 바로 정답ㅋㅋ

Solution

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        total = 0
        for i in range(1,len(prices)):
            if prices[i] > prices[i-1]:
                total += (prices[i] - prices[i-1])
                
        return total

별로 어렵지 않은 로직입니다. 바로 전 타임의 가격이 지금보다 싸면 무조건 사서 당장 파는 형식입니다. 왠지 아닌 테케가 있을거 같지만서도 다들 맞는 풀이라고 하네요. 계속해서 주식 시리즈를 풀어보겠습니다. 생각보다 시계열 데이터를 처리하는 로직이 재미있네요.

profile
뭔 생각을 해. 그냥 하는 거지 뭐

0개의 댓글