LeetCode Top Interview 150) Best Time to Buy and Sell Stock II

EBAB!·2023년 8월 23일
0

LeetCode

목록 보기
7/35

Question

You are given an integer array prices where prices[i] is the price of a given stock on the ith day.

On each day, you may decide to buy and/or sell the stock. You can only hold at most one share of the stock at any time. However, you can buy it then immediately sell it on the same day.

Find and return the maximum profit you can achieve.

Constraints:

  • 1 <= prices.length <= 3 * 10^4
  • 0 <= prices[i] <= 10^4
class Solution:
    def maxProfit(self, prices: List[int]) -> int:




주식 가격을 시간순으로 저장한 리스트 prices를 통해 사고 팔고를 반복해서 얻을 수 있는 가장 큰 이익을 반환하는 문제입니다.

제가 생각한 코드는 다음과 같습니다.

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        profit = 0

        for i in range(len(prices)-1):
            if prices[i] < prices[i+1]:
                profit += prices[i+1]-prices[i]
                
        return profit
  • profit : 전체 이익을 저장하는 변수입니다.
  • prices 전체를 순회하면서 내일의 가격이 높아진다면 profit에 오늘과 내일의 가격 차이를 더합니다.

주식 단타의 고수(?)를 생각하며 작성한 코드입니다.
다음날의 가격을 알아내는 능력이 있다면 다음날이 오르는걸 알 때 마다 오늘 사서 내일 팔겠죠.

물론 내리기 전까지 팔지않은 다음에 내리기 전에만 파는 방식도 있습니다. (수수료도 안붙고)

해당 코드에서 거슬릴만큼 비효율적인 부분도 없고 코드 자체가 깔끔해서 이렇게 마무리를 해봅니다!

profile
공부!

0개의 댓글