😎풀이

  1. nums에 1을 찾을 때까지 순회
    1-1. nums의 첫 번째 요소가 1이 될 때까지 스왑
  2. numsn(nums의 길이)를 찾을 때까지 순회
    2-1. nums의 마지막 요소가 n이 될 때까지 스왑
function semiOrderedPermutation(nums: number[]): number {
    let operation = 0
    const n = nums.length
    let i = 0
    while(i < n) {
        if(nums[i] !== 1) {
            i++
            continue
        }
        while(nums[0] !== 1) {
            [nums[i - 1], nums[i]] = [nums[i], nums[i - 1]]
            i--
            operation++
        }
        break
    }
    i = n - 1
    while(i >= 0) {
        if(nums[i] !== n) {
            i--
            continue
        }
        while(nums[n - 1] !== n) {
            [nums[i], nums[i + 1]] = [nums[i + 1], nums[i]]
            i++
            operation++
        }
        break
    }
    return operation
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글