function get(str) {
let arr = str.split(' ').map((n) => parseInt(n, 10));
// 첫번 째 elem 은 i
for (let i = 0; i < arr.length; i++) {
// 첫번째 값을 최소값이라고 가정하고 저장
let min = i;
// 두번째 elem 은 j
for (let j = i + 1; j < arr.length; j++) {
// 만약 첫번째 elem > 두번째 elem 이면 최소값min 을 j로 업데이트
if (arr[min] > arr[j]) {
min = j;
}
}
// 이제 최소값이랑 i랑 다르므로 두개의 위치를 swap 해줌
if (i !== min) {
let temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
return arr;
}
console.log(get('4 23 8 5 7 41'));
기본개념은 위와 같다. 단지 map으로 구현한 것만이 다른 점이다.
function get(str) {
let arr = str.split(' ').map((n) => parseInt(n, 10));
let len = arr.length;
arr.map((elem, idx) => {
let min = idx; // storing index of the minimum value
for (let j = i + 1; j < len; j++) {
if (arr[min] > arr[j]) {
min = j;
}
}
if (i !== min) {
// destruturing으로 순서를 바꿔준다.
[arr[i], arr[min]] = [arr[min], arr[i]];
}
});
return arr;
}
console.log(get('4 23 8 5 7 41'));