.Zzumbong

[leetCode/JS] 896. Monotonic Array 본문

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
};

 

감상평

  • 문제 자체는 이해하기 쉽고 아하~ 바로 풀어야지! 하는데, 로직에 대해 은근 고민하게 만든다.
Comments