중앙값 구하기 / sort()

귤녹차·2025년 3월 12일
post-thumbnail

📌 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: xy보다 클 경우 순서를 바꿉니다.
  • x - y < 0: xy보다 작을 경우 순서를 유지합니다.
  • x - y === 0: xy가 같을 경우 순서를 바꾸지 않습니다.
profile
배우는 과정에 즐거움을 느끼고 있습니다.

0개의 댓글