sm 기술 블로그
77. 2108(통계학) 본문
let input = require('fs').readFileSync(0).toString().trim().split('\n').map(Number);
N = input[0];
input.shift();
//산술 평균
let avg = input.reduce((a,b)=>(a+b))/N;
if(-1<avg&&avg<0){
console.log(0);
}
else {
console.log(Math.round(avg));
}
//중앙값
let sortedArr = input.sort((a, b) => a - b)
let midNum = input[Math.floor(N/2)];
console.log(midNum);
// 최빈값
let max = 0;
let arr = [];
for(let i = 0 ; i < 8001;i++){
arr.push(-1);
}
let cnt = 0;
let arr_repo = [];
let find_max = 0;
if(input.length===1){
console.log(input[0]);
}
else{
for(let val of input){
arr[val+4000] += 1;
}
for(let i = 0; i < 8001; i++){
if(arr[i] > find_max){
arr_repo = [];
cnt = 0;
find_max = arr[i];
max = i - 4000;
arr_repo.push(max);
continue;
}
if(arr[i] == find_max){
cnt ++;
arr_repo.push(i-4000);
continue;
}
}
if(cnt >= 1){
console.log(arr_repo.sort((a, b) => a - b)[1]);
}
else {
console.log(max)
}
}
// 범위
console.log(Math.max(...input)-Math.min(...input));
최대한 자바스크립트에서 제공하는 함수를 사용하지 않고 하고자 했다.
로직에 대한 자세한 설명은
https://smhope.tistory.com/219?category=1058420
'문제 > 백준_자바스크립트' 카테고리의 다른 글
79. 11650(좌표 정렬하기) (0) | 2022.06.15 |
---|---|
78. 1427(소트인사이드) (0) | 2022.06.14 |
76. 2752 (수 정렬하기2) (0) | 2022.06.13 |
75. 2750(수 정렬하기) (0) | 2022.06.12 |
75. 1436(영화감독 숌) (0) | 2022.06.12 |
Comments