Menu
CoddyTech

Best Time to Buy and Sell Stock

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

연속된 여러 날의 주식 가격이 주어지며, 하루에 가격이 하나씩 있습니다. 어떤 날 주식 1주를 매수하고 그보다 나중인 날에 매도할 수 있습니다. 이익은 매도가에서 매수가를 뺀 값이며, 가능한 한 가장 큰 이익을 원합니다. 모든 거래에서 손실이 발생한다면 거래하지 않고 0을 얻습니다.

가격이 [7, 2, 5, 9, 1, 4]라고 해 봅시다. 1일 차에 2에 매수하고 3일 차에 9에 매도하면 7을 벌며, 다른 어떤 날짜 쌍도 이보다 나은 결과를 내지 못합니다. 4일 차에 1에 매수하는 것이 가장 저렴한 날이라 솔깃해 보이지만, 그 이후에 매도할 수 있는 날의 가격은 4뿐이므로 그 거래로는 3만 벌 수 있습니다.

정수 목록 prices를 받는 maxProfit이라는 함수를 작성하세요. 여기서 prices[i]는 i일째의 주가이며, 하루에 매수하고 그보다 나중에 매도하여 얻을 수 있는 최대 이익을 반환합니다. 거래로 이익을 얻을 수 없다면 0을 반환하세요.

제약 조건: 1 ≤ prices.length ≤ 10^5, 0 ≤ prices[i] ≤ 10^4.

함수

maxProfit(arg1: integer-array) → integer
arg1integer-array
반환값integer

예제

입력
arg1 = [7, 2, 5, 9, 1, 4]
출력
7

lock icon제출 시 숨은 테스트 +12개

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

케이스 1

케이스 2

입력

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

기대값

7