[LeetCode] 2164. Sort Even and Odd Indices Independently

Chobby·2025년 10월 22일
1

LeetCode

목록 보기
679/746

😎풀이

  1. nums 순회
    1-1. 홀수라면, 홀수 배열에 저장
    1-2. 짝수라면, 짝수 배열에 저장
  2. 홀수 배열 내림차 순 정렬
  3. 짝수 배열 오름차 순 정렬
  4. 짝수 홀수 순으로 한 배열에 병합
  5. 길이가 다르다면, 남은 배열 모두 병합
  6. 전체 배열 반환
function sortEvenOdd(nums: number[]): number[] {
    const odd = []
    const even = []
    for(let i = 0; i < nums.length; i++) {
        if((i & 1) === 1) odd.push(nums[i])
        else even.push(nums[i])
    }
    const oddSorted = odd.toSorted((a, b) => b - a)
    const evenSorted = even.toSorted((a, b) => a - b)
    let oddIdx = 0
    let evenIdx = 0
    const result = []
    while(oddIdx !== odd.length && evenIdx !== even.length) {
        result.push(evenSorted[evenIdx++])    
        result.push(oddSorted[oddIdx++])
    }
    return [...result, ...oddSorted.slice(oddIdx), ...evenSorted.slice(evenIdx)]
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글