728x90
[Javascript] (LeetCode) 121. Best time to buy and sell stock (Easy)
💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.
내 풀이
/**
* @param {number[]} prices
* @return {number}
*/
var maxProfit = function(prices) {
// 비교해서 전날 보다 싼 날이 있는지 확인
// for돌리면서 -되면 팔기,
// 그냥 배열에 오늘과 다음날의 비교값을 다 담아서 +인지 아닌지 여부 확인해서 + 이면 팔고 -이면 안팔고 이런식으로 해야될것 같은데 ?
const maxNums = [];
let maxNum = Number.MIN_VALUE;
let j = 1;
let i = 0;
while (j < prices.length) {
if (prices[j] < prices[i]) {
i = j;
j++;
continue;
}
let diff = prices[j] - prices[i];
diff = prices[j] - prices[i];
maxNum = Math.max(diff, maxNum);
j++;
}
return maxNum;
};
- 한번만 거래할수 있다는 가정이 있어서 가장 좋은 결과를 낼수 있는 타이밍을 찾는 문제였다.
- for문으로 자꾸 해결하려다 보니 복잡했는데, while로 풀게 되니 금방 풀리게 되었다. 특히나 투 포인터를 사용하는 문제는 while이 훨씬 쉽게 풀린다는걸 느꼈다.
'Coding Test > LeetCode' 카테고리의 다른 글
[Javascript] (LeetCode) 7. Reverse Integer (Medium) (0) | 2022.07.25 |
---|---|
[Javascript] (LeetCode)136. Single Number (Easy) (0) | 2022.07.25 |
[Javascript] (LeetCode) 217. Contains Duplicate (Easy) (0) | 2022.07.24 |
[Javascript] (LeetCode)122. Best Time to Buy and Sell Stock II (Medium) (0) | 2022.07.22 |
[Javascript] (LeetCode) 26. Remove Duplicates from Sorted Array (Easy) (0) | 2022.07.20 |
[Javascript] (LeetCode) 19. Remove Nth Node From End of List (Medium) (0) | 2022.07.14 |
[Javascript] LeetCode 876. Middle of the Linked List (0) | 2022.07.14 |
[Javascript] LeetCode 557. Reverse Words in a String III (0) | 2022.07.13 |
댓글