본문 바로가기

코딩/알고리즘

백준) 2587 - 대표값2

📌 문제 링크

https://www.acmicpc.net/problem/2587


📌 문제 탐색하기

  • 숫자가 주어지면 그 숫자들의 평균과 중앙값을 차례대로 출력하시오.

시간복잡도

  • O(nlogn)

📌 코드 설계하기

  1. 문제의 `input`을 개행으로 분리하여 숫자로 변환 후 오름차순으로 정렬합니다.
  2. `avg` 변수에 `input`의 모든 값을 더한 후, `input`의 길이를 나누어 평균을 구합니다.
  3. `median` 변수에 `input`길이를 2로 나눈 후 버림하여 `input` 인덱스를 통해 중앙값을 구합니다.
  4. `avg`와 `median`를 출력합니다.

📌 정답 코드

//https://www.acmicpc.net/problem/2587
export {};

const fs = require("fs");
const filePath =
  process.platform === "linux" ? "/dev/stdin" : __dirname + "/input1.txt";
const input = fs
  .readFileSync(filePath)
  .toString()
  .trim()
  .split("\n")
  .map(Number)
  .sort((a: number, b: number) => a - b);
const avg = input.reduce((a: number, b: number) => a + b, 0) / input.length;
const median = input[Math.floor(input.length / 2)];
console.log(avg);
console.log(median);

'코딩 > 알고리즘' 카테고리의 다른 글

백준) 2231 - 분해합 JS  (0) 2024.11.15
백준) 2798 - 블랙잭 JS  (0) 2024.11.14
백준) 2750 - 수 정렬하기 JS  (0) 2024.11.12
백준) 1152 - 단어의 개수 JS  (0) 2024.11.11
백준) 10988 - 팰린드롬인지 확인하기 JS  (0) 2024.11.10