< 문제 간단설명 >
당일의 주가들이 배열로 주어진다. 언제 매수를 해서 언제 매도를 하면 가장 큰 수익을 낼 수 있는지 확인한 후, 그 최대 수익을 반환하면 되는 문제이다.
/**
* @param {number[]} prices
* @return {number}
*/
var maxProfit = function(prices) {
let profit = 0;
let minPrice = Math.max(...prices);
let maxProfit = 0;
for(const CURRENT_PRICE of prices) {
minPrice = Math.min(minPrice, CURRENT_PRICE);
profit = CURRENT_PRICE - minPrice;
maxProfit = Math.max(maxProfit, profit);
}
return maxProfit;
};
prices 배열을 하나씩 순회를 하는데, 그 때마다 최소값을 갱신해준다. 그와 동시에 이윤을 구해서 최대 이윤도 똑같이 갱신을 해주면 된다.
'PS > LeetCode' 카테고리의 다른 글
LeetCode / Tree / 589번 / N-ary Tree Preorder Traversal / JS (0) | 2023.04.05 |
---|---|
LeetCode / Greedy / 409번 / Longest Palindrome / JS (0) | 2023.04.01 |
LeetCode / Linked List / 142번 / Linked List Cycle II / JS (0) | 2023.04.01 |
LeetCode / Linked List / 876번 / Middle of Linked List / JS (0) | 2023.04.01 |