Menu
CoddyTech

Best Time to Buy and Sell Stock

쉬움그리디python iconjava iconcpp iconc iconjs icon+10

prices 목록이 주어집니다. 여기서 prices[i]는 i일의 주식 한 주 가격입니다. 하루에 한 주를 매수하고 그 이후의 날에 매도할 수 있습니다. 얻을 수 있는 최대 이익을 반환하세요. 가능한 모든 거래에서 손실이 발생한다면 0을 반환하세요.

함수

maxProfit(prices: integer-array) → integer
pricesinteger-array
각 날짜의 주가를 순서대로
반환값integer
한 번 매수한 후 나중에 매도하여 얻을 수 있는 최대 이익 또는 0

제약 조건

  • 1 ≤ prices.length ≤ 105
  • 0 ≤ prices[i] ≤ 104
  • 최대 한 번만 거래하며, 매수한 날보다 나중에 매도합니다.

예제

입력
prices = [7, 2, 5, 9, 1, 4]
출력
7
설명
1일 차에 2에 사서 3일 차에 9에 팔면 7의 수익을 얻습니다. 가장 저렴한 가격인 4일 차의 1은 9 이후에 나오므로, 그 이후에 가장 잘 팔아도 수익은 3에 불과합니다.
challenge icon

후속 질문

원하는 만큼 거래할 수 있지만, 한 번에 최대 한 주만 보유할 수 있다면 어떨까요?

코드 초기화
def maxProfit(prices):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

인자

prices = [7, 2, 5, 9, 1, 4]

예상 출력

7