[LeetCode] Check if Array Is Sorted and Rotated

아르당·2026년 6월 26일

LeetCode

목록 보기
374/579
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

배열 nums가 주어졌을 때, 만약 배열이 오름차순으로 정렬하고 특정 위치만큼 회전 되면 true를 반환해라. 그렇지 않으면 false를 반환해라.

배열에 중복된 요소가 있을 수 있다.

Example

#1
Input: nums = [3, 4, 5, 1, 2]
Output: true
Explanation: [1, 2, 3, 4, 5]는 정렬된 배열이다.
x = 2만큼 배열을 회전시키 값 3 요소로 시작하게 할 수 있다.

#2
Input: nums = [2, 1, 3, 4]
Output: false
Explanation: 배열을 정렬할 수 없고 nums를 만들 수 없다.

#3
Input: nums = [1, 2, 3]
Output: true
Explanation: [1, 2, 3]는 정렬된 배열이다.
x = 0만큼 배열을 회전시키면 nums를 만들 수 있다.

Constraints

  • 1 <= nums.length <= 100
  • 1 <= nums[i] <= 100

Solved

class Solution {
    public boolean check(int[] nums) {
        boolean flag = false;
        int n = nums.length;

        for(int i = 0; i < n; i++){
            if(nums[i] > nums[(i + 1) % n]){
                if(flag){
                    return false;
                }

                flag = true;
            }
        }

        return true;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글