[LeetCode] Sort Even and Odd Indices Independently

준규·2022년 11월 18일
0

index가 0부터 시작하는 정수 배열 nums가 주어질 때 index가 홀수인 요소들은 내림차순, index가 짝수인 요소들은 오름차순으로 각각 정렬하여 배열을 리턴하는 문제이다.

Example을 보자

예시처럼 길이가 4인 배열이라면 index가 짝수인 0,2 요소들은 오름차순, index가 홀수인 1,3 요소들은 내림차순으로 각각 정렬하여 리턴하면 된다.

const sortEvenOdd = function (nums) {
  const odd = [];
  const even = [];
  const result = [];

  for (let i = 0; i < nums.length; i++) {
    if (i % 2 === 0) {
      even.push(nums[i]);
    } else {
      odd.push(nums[i]);
    }
  }

  even.sort((a, b) => a - b);
  odd.sort((a, b) => b - a);

  for (let i = 0; i < nums.length; i++) {
    if (i % 2 === 0) {
      result.push(even.shift());
    } else {
      result.push(odd.shift());
    }
  }

  return result;
};

일단 주어진 배열을 홀수 index 와 짝수 index 끼리 나누어서 odd 와 even에 저장하기로 했다.

for문을 돌면서 index가 짝수라면 even , index가 홀수라면 odd배열에 넣어준 뒤 각 배열을 오름차순 내림차순 정렬을 해주었다.

그 다음 nums의 길이만큼 for문을 돌면서 index가 짝수라면 even 배열 앞에서부터 요소들을 빼서 result 배열에 넣어주고, index가 홀수라면 odd 배열 앞에서부터 요소들을 result 안에 넣어서 리턴해주었다.

submit을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글