728x90
문제
정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다.
입력
let output = insertionSort([3, 1, 21]);
console.log(output); // --> [1, 3, 21]
const insertionSort = function (arr, transform = (item) => item) {
let sorted = [arr[0]];
for (let i = 1; i < arr.length; i++) {
if (transform(arr[i]) >= transform(sorted[i - 1])) {
sorted.push(arr[i]);
} else {
for (let j = 0; j < i; j++) {
if (transform(arr[i]) <= transform(sorted[j])) {
const left = sorted.slice(0, j);
const right = sorted.slice(j);
sorted = left.concat(arr[i], right);
break;
}
}
}
}
return sorted;
};728x90
'코플릿 > toyproblem' 카테고리의 다른 글
| toy problem 16 (0) | 2021.10.29 |
|---|---|
| toy problem 15 (0) | 2021.10.29 |
| toy problem 12 (0) | 2021.10.29 |
| toy problem 10 (0) | 2021.10.28 |
| toy problem 11 (0) | 2021.10.28 |