
문제 링크
https://leetcode.com/problems/best-time-to-buy-and-sell-stock/
/**
* @param {number[]} prices
* @return {number}
*/
var maxProfit = function(prices) {
let max = 0
let result = 0
let arr = []
while (prices.length > 1) {
max = Math.max.apply(null, prices)
if (max === 0) { break }
arr = prices.slice(0, prices.findIndex((e) => e === max) + 1)
prices.splice(0, prices.findIndex((e) => e === max) + 1)
let arrMax = Math.max.apply(null, arr)
let arrMin = Math.min.apply(null, arr)
if (arrMax - arrMin > result) {
result = arrMax - arrMin
}
}
return result
};
배열의 가장 큰 숫자를 기준으로 좌측의 max, min 차이 값을 구한다.
우측은 다시 가장 큰 숫자를 기준으로 max, min 차이 값을 구하는 과정을 반복하여 최대값을 구한다.