코딩테스트 문제풀이/inflearn

[인프런] Node.js / 섹션7-정렬과 그리디, 결정알고리즘 / 3. Special Sort(구글 인터뷰)

sangchu 2023. 2. 15. 14:06

문제

N개의 정수를 정렬해야 한다. 음의 정수는 앞쪽에 양의정수는 뒷쪽에 있어야 한다. 또한 양의정수와 음의정수의 순서에는 변함이 없어야 한다. 숫자 0은 입력되지 않는다.

 

풀이

function solution(arr) {
  let answer = arr;
  for (let i = 0; i < answer.length - 1; i++) {
    for (let j = 0; j < answer.length - 1 - i; j++) {
      if (answer[j] > answer[j + 1]) {
        if (answer[j] > 0 && answer[j + 1] < 0) {
          [answer[j], answer[j + 1]] = [answer[j + 1], answer[j]];
        }
      }
    }
  }

  return answer;
}

let arr = [1, 2, 3, -3, -2, 5, 6, -6];
console.log(solution(arr));

 

현재 숫자가 양수고, 다음 숫자가 음수이면 자리를 바꿔준다.