문제 설명
Medium
- price[i]가 i번째 날의 주어진 주식 가격인 정수 배열 price가 주어집니다.
- 매일 주식을 매수 및/또는 매도하기로 결정할 수 있습니다.
- 언제든지 최대 한 주식만 보유할 수 있습니다. 단, 매수 후 당일 매도가 가능합니다.
- 달성할 수 있는 최대 이익을 찾아 반환해보자
- Example : 2일에 매수(가격 = 1)하고 3일에 매도(가격 = 5), 이익 = 5-1 = 4.
그런 다음 4일째에 매수하고(가격 = 3) 5일째에 매도합니다(가격 = 6), 이익 = 6-3 = 3.
총 이익은 4 + 3 = 7입니다. - Example : 1일에 매수(가격 = 1)하고 5일에 매도(가격 = 5), 이익 = 5-1 = 4.
총 이익은 4입니다. - 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;
};
'프론트엔드 개발[Front-End Development] > Coding Test' 카테고리의 다른 글
[CT-L] 88. Merge Sorted Array (0) | 2022.11.21 |
---|---|
[CT-L] 215. Kth Largest Element in an Array (0) | 2022.11.21 |
[CT-L] 1480. Running Sum of 1d Array (0) | 2022.11.14 |
[CT-L] 692. Top K Frequent Words (0) | 2022.11.14 |
[CT-L] 11. Container With Most Water (0) | 2022.11.14 |