loading
본문으로 바로가기

문제 설명

Medium

  • price[i]가 i번째 날의 주어진 주식 가격인 정수 배열 price가 주어집니다.
  • 매일 주식을 매수 및/또는 매도하기로 결정할 수 있습니다.
  • 언제든지 최대 한 주식만 보유할 수 있습니다. 단, 매수 후 당일 매도가 가능합니다.
  • 달성할 수 있는 최대 이익을 찾아 반환해보자  
  1. Example : 2일에 매수(가격 = 1)하고 3일에 매도(가격 = 5), 이익 = 5-1 = 4.
    그런 다음 4일째에 매수하고(가격 = 3) 5일째에 매도합니다(가격 = 6), 이익 = 6-3 = 3.
    총 이익은 4 + 3 = 7입니다.
  2. Example : 1일에 매수(가격 = 1)하고 5일에 매도(가격 = 5), 이익 = 5-1 = 4.
    총 이익은 4입니다.
  3. Example : 플러스 수익을 낼 수 있는 방법이 없으므로 최대 수익 0을 달성하기 위해 주식을 사지 않습니다.

 

**문제에서 요구하는 풀이는 price[i] 배열을 지나가며,모든 연속 거래에서 얻은 이익을 계속 추가하는 것이다. 만약 i > i-1일 때, price[i] - price[i-1]을 통해 이익을 누적하여 문제를 해결한다.

 

접근

var maxProfit = function(prices) {
    let result = 0; //누적할 변수
    
    for (let i=1; i<prices.length; i++) {
    	//배열의 2번째 인수와 1번째 인수를 비교한다.
        if (prices[i] > prices[i-1]) {
        	//2번째 인수가 1번째 인수보다 클 때, 차의 값을 result 변수에 누적시킨다.
            result += prices[i] - prices[i-1];
        }
    }
    
    return result;
};

 

 

 

Best Time to Buy and Sell Stock II - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com