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.
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
에 오늘과 내일의 가격 차이를 더합니다.주식 단타의 고수(?)를 생각하며 작성한 코드입니다.
다음날의 가격을 알아내는 능력이 있다면 다음날이 오르는걸 알 때 마다 오늘 사서 내일 팔겠죠.
물론 내리기 전까지 팔지않은 다음에 내리기 전에만 파는 방식도 있습니다. (수수료도 안붙고)
해당 코드에서 거슬릴만큼 비효율적인 부분도 없고 코드 자체가 깔끔해서 이렇게 마무리를 해봅니다!