Data Structure & Algorithm
[알고리즘-JS] Special Sort (구글 인터뷰)
fnow
2022. 5. 4. 21:12
반응형
문제
N개의 정수가 입력되면 당신은 입력된 값을 정렬해야 한다. 음의 정수는 앞쪽에 양의 정수는 뒤쪽에 있어야 한다.
또한 양의정수와 음의 정수의 순서에는 변함이 없어야 한다.
입력 예제
8
1 2 3 -3 -2 5 6 -6
출력 예제
-3 -2 -6 1 2 3 5 6
풀이
일반 오름차순 정렬로 하면 음수, 양수 각각의 순서도 정렬되기 때문에 버블 정렬로 해결해야 한다.
function solution(arr) {
let answer = arr; // 얕은 복사
// 버블 정렬
for (let i = 0; i < arr.length-1; i++) {
// 맨 뒤 요소는 계속 확정이므로 확인 X
for (let j = 0; j < arr.length-1-i; j++) {
// j가 양수고, j 뒤 요소가 음수인 경우 자리 바꿈
if (arr[j] > 0 && arr[j+1] < 0) {
[arr[j], arr[j+1]] = [arr[j+1], arr[j]];
}
}
}
return answer;
}
반응형