coding test/leetCode
[leetCode/JS] 896. Monotonic Array
쭘봉
2023. 9. 29. 20:33
난이도 [ 😊 ] Easy
문제 설명
An array is monotonic if it is either monotone increasing or monotone decreasing.
An array nums
is monotone increasing if for all i <= j
, nums[i] <= nums[j]
. An array nums
is monotone decreasing if for all i <= j
, nums[i] >= nums[j]
.
Given an integer array nums
, return true
if the given array is monotonic, or false
otherwise.
배열이 증가하거나 감소한다.
배열 nums는 모든 i <= j에 대해 nums[i] <= nums[j]인 경우 증가하는 배열이다.
모든 i <= j에 대해 nums[i] >= nums[j]라면 nums 배열은 감소한다.
정수 배열 nums가 주어지면 주어진 배열이 단조롭게 증가하거나 감소하면 true, 그렇지 않으면 false를 반환한다.
입출력 예
Example 1:
Input: nums = [1,2,2,3]
Output: true
Example 2:
Input: nums = [6,5,4,4]
Output: true
Example 3:
Input: nums = [1,3,2]
Output: false
Constraints
1 <= nums.length <= 105
\-105 <= nums\[i\] <= 105
내 솔루션
- for문을 돌리는 중에 if를 여러번 작성하다가 합쳐서 작성함.
- 중요 포인트는 증가와 감소 중 한 가지 방식만 나와야함으로 2가지 상황을 발견하면 false가 나오도록 로직을 만듦.
- 말로 표현하기 어렵네..
var isMonotonic = function(nums) {
let increase = true
let decrease = true
for(let i = 1; i < nums.length; i++) {
const [n1, n2] = [nums[i-1], nums[i]]
if(n1 > n2) increase = false
if(n1 < n2) decrease = false
}
return increase || decrease
};
감상평
- 문제 자체는 이해하기 쉽고 아하~ 바로 풀어야지! 하는데, 로직에 대해 은근 고민하게 만든다.