선택 정렬
N개의 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요.
정렬하는 방법은 선택정렬입니다.
▣ 입력설명
첫 번째 줄에 자연수 N(1<=N<=100)이 주어집니다.
두 번째 줄에 N개의 자연수가 공백을 사이에 두고 입력됩니다.
각 자연수는 정수형 범위 안에 있습니다.
▣ 출력설명
오름차순으로 정렬된 수열을 출력합니다.
▣ 입력예제 1
6
13 5 11 7 23 15
▣ 출력예제 1
5 7 11 13 15 23
문제 풀이
선택 정렬
- 주어진 리스트 중에 최소값을 찾는다.
- 그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)).
- 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.
- 하나의 원소만 남을 때까지 위의 1~3 과정을 반복한다.
- 하나를 고정으로 놓고 나머지 리스트를 비교해야하니 2중 for문을 돌린다.
- 나머지 리스트에서 최솟값을 찾아 그 인덱스를 담을 minIdx를 선언, i로 초기화
- 나머지 리스트를 j로 돌면서 minIdx 위치의 값보다 작으면 그 j가 minIdx가 된다.
- 배열에서 i 위치의 값과 minIdx 위치의 값을 교체한다.
function solution(array) {
let arr = array;
for (let i = 0; i < arr.length; i++) {
let minIdx = i;
for (let j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIdx]) {
minIdx = j;
}
[arr[i], arr[minIdx]] = [arr[minIdx], arr[i]];
}
}
return arr;
}
let array = [13, 5, 11, 7, 23, 15];
console.log(solution(array));
구조 분해 할당
[arr[i], arr[minIdx]] = [arr[minIdx], arr[i]]
배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식이다.
구조 분해 할당을 사용하면 배열에서 요소들의 위치를 바꿀 수 있다.
Author And Source
이 문제에 관하여(선택 정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@cheej10/선택-정렬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)