(알고리즘) Special Sort(구글 인터뷰)

호두파파·2022년 2월 4일
0

알고리즘 연습

목록 보기
58/60


N개의 정수가 입력되면 당신은 입력된 값을 정렬해야 한다.
음의 정수는 앞쪽에 양의정수는 뒷쪽에 있어야 한다. 또한 양의정수와 음의정수의 순서에는 변함이 없어야 한다.

입력설명

첫 번째 줄에 정수 N(5<=N<=100)이 주어지고, 그 다음 줄부터 음수를 포함한 정수가 주어진 다. 숫자 0은 입력되지 않는다.

입력예제

  • [1, 2, 3, -3, -2, 5, 6, -6]

출력예제

  • [-3, -2, -6, 1, 2, 3, 5, 6]

sort()parseInt()를 이용하면 음수까지 오름차순으로 정렬이 되어버린다.
문제의 의도는 정렬을 알고리즘으로 구현하는 것이다.

앞선 문제처럼 이중 for문을 돌면서, 정렬을 하도록 구현해야 한다.

const arr = [1, 2, 3, -3, -2, 5, 6, -6];
// 양수와 음수의 뺼셈은 양의 정수를 반환한다
function solution(arr) {
 for (let i = 0; i < arr.length-1; i++) {
   for (let j = 0; j < arr.length-i-1; j++) {
     if (arr[j] > 0 && arr[j+1] < 0) {
       [arr[j], arr[j+1]] = [arr[j+1], arr[j]]
     }
   }
 }
  console.log(arr);
}

console.log(solution(arr));

profile
안녕하세요 주니어 프론트엔드 개발자 양윤성입니다.

0개의 댓글