📌 문제 링크
https://www.acmicpc.net/problem/2587
📌 문제 탐색하기
- 숫자가 주어지면 그 숫자들의 평균과 중앙값을 차례대로 출력하시오.
시간복잡도
- O(nlogn)
📌 코드 설계하기
- 문제의 `input`을 개행으로 분리하여 숫자로 변환 후 오름차순으로 정렬합니다.
- `avg` 변수에 `input`의 모든 값을 더한 후, `input`의 길이를 나누어 평균을 구합니다.
- `median` 변수에 `input`길이를 2로 나눈 후 버림하여 `input` 인덱스를 통해 중앙값을 구합니다.
- `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 |