알고리즘, 자료구조/Codility
[Javascript] Codility Lesson9 - MaxProfit
jaee
2022. 6. 21. 21:33
문제: https://app.codility.com/programmers/lessons/9-maximum_slice_problem/max_profit/
문제 요약
- N개의 정수를 갖는 배열 A가 주어지며, 각 요소는 주식의 일별 가격을 나타낸다.
- 주식을 사고 팔았을 때 얻을 수 있는 최대 이익을 반환하고, 만약 이익을 내는 경우가 없다면 0을 반환한다.
- P는 주식을 산 날, Q는 주식을 판 날이며 0 < P <= Q < N 이다.
function solution(A) {
let profit = 0;
let buy = A[0];
for (let i = 1; i < A.length; i++) {
let tmp = A[i] - buy;
// i day의 주식의 최저 가격이면 buy에 A[i]를 할당한다.
buy = A[i] < buy ? A[i] : buy;
profit = tmp > profit ? tmp : profit;
}
// profit이 0보다 크면 profit 반환, 그렇지 않다면 0을 반환한다.
profit = profit > 0 ? profit : 0;
return profit;
}