본문 바로가기
leetcode

Leet code 121 - Best Time to Buy and Sell Stock

by monsangter 2023. 4. 11.

 

 

array 문제이다. 문제 조건을 차분히 따라가기만 하면 되는 쉬운 문제 였다.

 

처음에는 min과 max를 생각했다. 하지만 시간순이라는게 존재하고, 최악의 경우 내림차순 정렬이라면 아에 수익을 낼 수 없다

for문으로 차근차근 해결하면 답이나오지 않을까..

일단 최소값 변수를 만들어 최소값을 갱신하고, 현재값에서 최소값을 빼 max_profit을 갱신한다.

처음에는 모든 profit을 배열 자료구조에 저장해 최대값을 구할까 생각했지만, 굳이 그럴 필요가 없다.

 

 

 

class Solution(object):
    def maxProfit(self, prices):
        """
        :type prices: List[int]
        :rtype: int
        """

        #그냥 리스트에서 최저 최고 뽑는건 안된다.
        #시간을 따르고 있기 때문에.. 사기전에 팔 수 없기 떄문에..
        #min num 을 만들고 그 다음 수랑 더해 리스트에 추가한다.
        # 생각해봐.. 중요한건 최대 프로핏임. 민값갱신과, 프로핏 저장.

        min_num = 100000
        max_profit = 0

        for i in prices:
            if i <= min_num:
                min_num = i
            
            if i-min_num > max_profit:
                max_profit = i - min_num

    
        return max_profit

 

 

'leetcode' 카테고리의 다른 글

Leet code 53 - Maximum Subarray  (0) 2023.04.14
Leet code 238 - Product of Array Except Self  (0) 2023.04.13
Leet code 217 - Contains Duplicate  (0) 2023.04.12
Leet code 1 -Two sum  (0) 2023.04.11
Leetcode 205 - isomorphic-strings  (0) 2023.04.09

댓글