Skip to content

Latest commit

 

History

History
43 lines (33 loc) · 1.78 KB

풀이_LC896.md

File metadata and controls

43 lines (33 loc) · 1.78 KB

🧵 896. Monotonic Array

  • Date : 2022.02.20(일)
  • Time : 20분

Problem

  • 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.

Constraints

  • 1 <= nums.length <= 10^5
  • -10^5 <= nums[i] <= 10^5

Example

  • Input: nums = [6,5,4,4]
  • Output: true

풀이1

    def isMonotonic(self, nums: List[int]) -> bool:

        if len(nums) < 3: return True
        
        increasing = True
        decreasing = True
        
        for i in range(0, len(nums)-1):
            if nums[i] < nums[i+1]: 
                increasing = False
            if nums[i] > nums[i+1]:
                decreasing = False

        return increasing or decreasing

: 첫번째 풀이이다. monotonic array는 증가만 하거나 감소만 하는 배열이여야한다. 증가하다가 일정한건 괜찮지만, 증가하다 감소하는 추세가 나오면 안된다는 것이다. 그래서 감소 형태인지 증가 형태인지를 검사하기 위해 bool 타입의 변수 2개를 작성하였다. 증가와 감소만 검사를 해서 두 변수가 둘다 False가 되면 오류다. 하나만 True가 나와야한다. 그래서 or로 return 해주었다.

풀이2

    def isMonotonic(self, nums: List[int]) -> bool:
        return sorted(nums) == nums or nums == sorted(nums,reverse = True)

: 두번째 풀이이다. 감소만 하거나 증가만 한다면 정렬을 해도 같은 모양이 나와야한다. 그래서 sorted를 내림차순 오름차순으로 해서 하나라도 동일하다면 true 이다.