ALGORITHM/Inflearn

Special Sort(버블정렬응용)

Harimad 2022. 3. 11. 16:12

버블정렬 참고 링크: 2022.03.10 - [CS/Algorithm] - 버블정렬(Bubble Sort)


 

문제

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

입력예제 1
3 4 1 -9 -10 1 8 -1 2 -4

출력예제 1
-9 -10 -1 -4 3 4 1 1 8 2

 

 

 

풀이

1. 버블정렬방식으로 풀면된다.

2. 회차별 비교 횟수를 반복할때, 조건문으로 앞의 요소는 양수이고 뒤의 요소는 음수이면 서로바꾸기를 한다.

 

 

 

코드

<script>
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] < 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)); //(8) [-3, -2, -6, 1, 2, 3, 5, 6]

let arr2 = [3,4,1,-9,-10,1,8,-1,2,-4]
console.log(solution(arr2)); //(10) [-9, -10, -1, -4, 3, 4, 1, 1, 8, 2]
</script>

 

 

출처

 

자바스크립트 알고리즘 문제풀이(코딩테스트 대비) - 인프런 | 강의

자바스크립트(JavaScript)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 재미있게 풀 수 있는 기초 단계 문제부터 고급 알고리즘까지 단계별로 차근차근 배우도록 설계된 강좌입니다., - 강의

www.inflearn.com