2022년 06월 25일 토요일 - 와 너무 오랜만에 올린다


오늘 올려볼 문제는 665번 Non-decreasing Array 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

요즘 스터디 준비도 있고 문제가 어려운 것도 있고 해서 오랜만에 올린다!


입력


사진에서도 볼 수 있듯이 int 배열 1개가 입력으로 들어온다.



풀이 및 코드


원소를 최대 1개만 수정해서 non-decreasing 배열을 만들 수 있는지 판단하는 문제이다.


오늘은 처음부터 정답을 생각해냈다.

배열을 순회하면서 non-decreasing이 아닐 때 원소를 수정하고 다시 순회해서 판단하는 방식으로 문제를 풀었다.


이제 코드를 봐보자!


풀이코드

class Solution {
    public boolean checkPossibility(int[] nums) {
        if(nums.length <= 2) return true;
        
        boolean flag = false;
        
        for(int i = 1; i < nums.length; i++)
        {
            if(nums[i - 1] > nums[i])
            {
                if(i == nums.length - 1) return true;
                
                if(nums[i - 1] < nums[i + 1])
                {
                    nums[i] = nums[i - 1];
                }
                else
                {
                    nums[i - 1] = nums[i];
                }
                break;
            }
        }
        
        for(int i = 1; i < nums.length; i++)
        {
            if(nums[i - 1] > nums[i])
            {
                return false;
            }
        }
        
        return true;
    }
}




제출 화면

leetcode 문제 맞았습니다


요즘 개인 프로젝트하랴 스터디 준비하랴 바쁜 나머지 알고리즘을 손놓고 있었던 것 같다.

또 자동화 프로그램을 윈도우 종속적으로 만든것도 어느정도 블로그를 안올리게 되는 것도 있는 것 같다.

그래도 열심히 풀어야지!!


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts