665. Non-decreasing Array

Doyeon Kim·2022년 9월 11일

코딩테스트 공부

목록 보기
118/171

문제 링크 : https://leetcode.com/problems/non-decreasing-array/


nums에서 하나만의 숫자를 바꾸어서 감소하지않는 배열 (Non-decreasing Non-decreasing Array)이면 true 아니면 False를 반환하는 문제이다.

예를 들어 [4,2,3]의 경우 4를 1이나 2(앞에있는 2보다 작거나 같은 경우)로 바꿀 수 있다.

[2,2,3,2,4]의 경우
3을 2로 바꿀 수 있고(물론 2를 4로 바꿀수도 있지만 이후 뒤에 숫자들이 있을 경우들을 생각하면 작을수록 더 유리..?하다)
[2,3,3,2,4]의 경우
nums[3]의 2를 앞에있는 3으로 바꾸면(최소 3보다 크거나 '같아야' 하기때문에) non-decreasing 배열이 된다.

[3,4,2,3]

class Solution:
    def checkPossibility(self, nums: List[int]) -> bool:
        changed = False
        for i in range(len(nums)-1):
            if nums[i]<=nums[i+1]:
                continue
            if changed:
                return False
            if i == 0 or nums[i+1]>=nums[i-1]:
                nums[i]=nums[i+1]
            else:
                nums[i+1] = nums[i]
            changed =True
        return True

22.12.23복습 완

profile
성장하고 도전하는 개발자. 프로그래밍 좋아하세요?

0개의 댓글