
😎풀이
nums 순회
1-1. 홀수라면, 홀수 배열에 저장
1-2. 짝수라면, 짝수 배열에 저장
- 홀수 배열 내림차 순 정렬
- 짝수 배열 오름차 순 정렬
- 짝수 홀수 순으로 한 배열에 병합
- 길이가 다르다면, 남은 배열 모두 병합
- 전체 배열 반환
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)]
};