본문 바로가기

Algorithm/Implementation

(C++) - LeetCode (easy) 1752. Check if Array Is Sorted and Rotated

반응형

https://leetcode.com/problems/check-if-array-is-sorted-and-rotated/

간단 구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

감소 횟수 cnt를 선언 후 0으로 초기화해주고 nums.size를 변수 sz를 선언해 저장해줍니다.

📔 풀이과정

1. nums의 원소를 순회합니다. 이웃 원소를 비교해 왼쪽이 오른쪽보다 크다면 cnt를 1씩 증가해줍니다.2. 마지막 원소가 첫 번째 원소보다 클 때도 마찬가지로 cnt를 증가시켜줍니다.

📔 정답 출력 | 반환

감소 구간이 1을 초과하면 한 번 회전으로 원하는 nums를 만들 수 없으므로 false를, 그 이하는 true를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    bool check(vector<int>& nums) {
        int cnt = 0;
        int sz = nums.size();
        for(int i = 0; i < nums.size() - 1; i++) {
            if(nums[i] > nums[i+1]) {
                cnt++;
            } 
        }
        if(nums[sz-1] > nums[0]) cnt++;
        return cnt <= 1;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.