문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
배열 nums가 주어졌을 때, 만약 배열이 오름차순으로 정렬하고 특정 위치만큼 회전 되면 true를 반환해라. 그렇지 않으면 false를 반환해라.
배열에 중복된 요소가 있을 수 있다.
#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를 만들 수 있다.
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;
}
}