반응형
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;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.