function get(str) {
let arr = str.split(' ').map((n) => parseInt(n));
let length = arr.length;
// 0 이상 일 때
while (length) {
for (let i = 0; i < length; i++) {
// 만약 앞에게 뒤의것 보다 크다면
if (arr[i] > arr[i + 1]) {
// 앞의 것 미리 저장해두고
let temp = arr[i];
// 뒤의 것은 앞에 걸로 변경하고
arr[i] = arr[i + 1];
// 앞의 것은 뒤의것으로 변경
arr[i + 1] = temp;
// 즉 앞 뒤 순서를 바꿈
}
}
// while 구문 계속 하기 위해 --
length--;
}
return arr;
}
console.log(get('4 2 3 8 5'));
이론은 똑같음.
map
을 두번 써서 for loop
처럼 반복 시켜주는 것.
단지 이때는 위 처럼 temp변수를 안둬도 된다는 점이 장점이다.
function get(str) {
let arr = str.split(' ').map((n) => parseInt(n, 10));
arr.map((elem) =>
arr.map((elem2, i) => {
if (arr[i] > arr[i + 1]) {
arr[i] = arr[i + 1];
arr[i + 1] = elem2;
}
})
);
return arr;
}
console.log(get('4 2 3 8 5 7 41'));
function get(str) {
let arr = str.split(' ').map((n) => parseInt(n, 10));
arr.map((elem) =>
arr.map((elem2, i) => {
if (arr[i] > arr[i + 1]) {
// destructuring 을 이용한 swapping!
[arr[i], arr[i + 1]] = [arr[i + 1], arr[i]];
}
})
);
return arr;
}