[LeetCode] 2855. Minimum Right Shifts to Sort the Array

Chobby·4일 전

LeetCode

목록 보기
808/826

😎풀이

1.오름차 순인지 검증할 헬퍼 함수 정의
1-1. nums를 순회하며, 모든 수가 이전 수보다 큰지 검증
2. nums 순회
2-1. 현재 배열이 오름차 순이라면, 시도한 이동 수 반환
2-2. 현재 배열에서 오른쪽으로 한 칸씩 이동
3. 우측으로 끝까지 이동했지만, 오름차 순 정렬이 불가했다면 -1 반환

function minimumRightShifts(nums: number[]): number {
    const n = nums.length
    let rightShifts = 0
    for(let i = 0; i < n; i++) {
        if(isAscSorted(nums)) return i
        nums.unshift(nums.pop())
    }
    return -1
};

function isAscSorted(nums: number[]) {
    for(let i = 1; i < nums.length; i++) {
        if(nums[i - 1] > nums[i]) return false
    }
    return true
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글