티스토리 뷰

 

안녕하세요. 죠쵸입니다.

오늘은 LeetCode 121 문제입니다. 난위도는 "Easy"입니다. 풀이는 쉬운 문제이지만, 복잡하게 생각하면 한 없이 복잡해지네요. 문제를 풀기에 앞서서 충분히 생각해보고, 코딩에 앞서서 풀이방법을 손으로 풀어 보는 것이 도움이 되는 것 같습니다. 

 

#LeetCode 121. Best Time to Buy and Sell Stock(Description)

 

이번 문제는 주식에서 발생가능한 가장 큰 수익을 구하는 것입니다. 정수 리스트가 주어지고, 가장 저점에서 구매해서 가장 고점에서 매매를 할 경우를 그 수익을 반환하는 것입니다. 조건은 미리 팔고, 나중에 구매하는 것을 제한됩니다.

 

 

#LeetCode 121. Best Time to Buy and Sell Stock(Solution)

 

순차적으로 주식의 가격을 확인하면서, 가장 저점일 때 가격을 확인하고, 각 주식의 가격과 저점의 값의 차를 통해서 수익을 구할 수 있습니다. 계속적으로 구해진 수익(profit) 중 큰 값을 저장하고, 최종적으로 해당 수익(profit)을 반환하면 문제를 풀이 끝납니다. 아래의 코드를 참조 부탁 드립니다.

 

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        min_value = sys.maxsize
        profit = 0

        for price in prices:
            min_value = min(min_value, price)
            profit = max(profit, price - min_value)

        return profit

 

해당 코드를 LeetCode에 제출시 정답으로 Accepted 되었습니다. 참고 해당 코드는 Runtime 65ms 이 걸렸고, Memory 사용은 14.9MB을 사용되었습니다.

 

 

방문해 주셔서 감사합니다. 여러분의 공감하기(), 댓글과 구독은 저에게 힘이 됩니다.

이상으로 죠쵸였습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함