😎풀이

  1. nums 오름차 순 정렬
  2. smallHalf로 절반의 인덱스 기준 작은 수들의 집합 정의
  3. largeHalf로 절반의 인덱스 기준 큰 수들의 집합 정의
  4. pointer를 정의하여 각 인덱스에
  5. 각 포인터에 작고 큰 배열 요소를 교차하며 선언
function wiggleSort(nums: number[]): void {
    nums.sort((a, b) => a - b)
    const n = nums.length
    const mid = Math.floor((n - 1) / 2)
    const smallHalf = nums.slice(0, mid + 1)
    const largeHalf = nums.slice(mid + 1)
    let i = smallHalf.length - 1
    let j = largeHalf.length - 1
    let pointer = 0
    while(i >= 0 || j >= 0) {
        if(i >= 0) nums[pointer++] = smallHalf[i--]
        if(j >= 0) nums[pointer++] = largeHalf[j--]
    }
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글