[인프런 워밍업클럽 CS 2기] 특별 미션
26일 전
특별 미션) 실수로 워밍업 클럽 출석을 빼먹었는데 우연히 데이터를 수정할 수 있는 권한이 주어졌습니다.
러너분의 이름(name)과 출석수(count)가 저장된 배열에서 여러분(나)의 데이터를 퀵정렬을 이용해
오름차순 정렬하고 가장 첫 번째 데이터인 여러분의 출석수를 변경하도록 코드를 작성해주세요.
(퀵정렬 구현 부분도 변경)
// 퀵 정렬 구현
function quickSort(arr, left, right) {
if (left < right) {
let pivot = divide(arr, left, right);
quickSort(arr, left, pivot - 1);
quickSort(arr, pivot + 1, right);
}
}
function divide(arr, left, right) {
let pivot = arr[left].count;
let leftStartIndex = left + 1;
let rightStartIndex = right;
while (leftStartIndex <= rightStartIndex) {
while (leftStartIndex <= right && arr[leftStartIndex].count <= pivot) {
leftStartIndex++;
}
while (rightStartIndex > left && arr[rightStartIndex].count > pivot) {
rightStartIndex--;
}
if (leftStartIndex < rightStartIndex) {
swap(arr, leftStartIndex, rightStartIndex);
}
}
swap(arr, left, rightStartIndex);
return rightStartIndex;
}
function swap(arr, index1, index2) {
let temp = arr[index1];
arr[index1] = arr[index2];
arr[index2] = temp;
}
// 미션 데이터
let user1 = {
name: "홍길동",
count: 5
};
let user2 = {
name: "임꺽정",
count: 4
}
let user3 = {
name: "이순신",
count: 3
}
let user4 = {
name: "나",
count: 1
}
let user5 = {
name: "짱구",
count: 5
}
let arr = [user1, user2, user3, user4, user5]
// 미션 구현 및 데이터 출력 (퀵정렬 후 나의 출석 수 변경)
console.log("===== 정렬 전 =====");
console.log(arr);
quickSort(arr, 0, arr.length - 1);
arr[0].count = 5
console.log("===== 정렬 후 =====");
console.log(arr);
// 출력 결과
댓글을 작성해보세요.