📌 3개의 정수 A,B,C를 입력받아 중앙값을 구하는 프로그램을 작성해보시오
❎
const fs = require("fs");
let input = fs.readFileSync(0).toString().trim().split(' ');
let A = Number(input[0]);
let B = Number(input[1]);
let C = Number(input[2]);
const numArray = [A, B, C];
numArray.sort();
console.log(numArray[1]);
✅
const fs = require("fs");
// 입력을 읽어들이고 공백을 기준으로 나눔
let input = fs.readFileSync(0).toString().trim().split(' ');
// 입력값을 정수로 변환
let A = Number(input[0]);
let B = Number(input[1]);
let C = Number(input[2]);
// 세 숫자를 배열에 저장하고 정렬
let numbers = [A, B, C];
numbers.sort((x, y) => x - y); // 오름차순 정렬
// 중앙값은 두 번째 값
let median = numbers[1];
console.log(median);
😮 sort() 메서드는 기본적으로 문자열로 비교하기 때문에, 숫자 배열이 제대로 정렬되지 않을 수 있다이를 해결하기 위해서 sort() 메서드에 비교 함수를 제공해야 한다.
숫자들을 올바르게 정렬하려면 숫자 기준으로 비교할 수 있도록 sort() 함수의 인자로 (x, y) => x - y와 같은 비교 함수를 사용해야 한다.
numArray.sort((x, y) => x - y)
이 비교 함수는 두 값을 비교하여 순서를 결정한다.
x - y > 0: x가 y보다 클 경우 순서를 바꿉니다.x - y < 0: x가 y보다 작을 경우 순서를 유지합니다.x - y === 0: x와 y가 같을 경우 순서를 바꾸지 않습니다.