[백준 2108번] 구현 - 통계학

김민지·2023년 11월 5일
0

냅다 시작 백준

목록 보기
104/118

✨ 문제 ✨

✨ 정답 ✨

const { notDeepEqual } = require("assert");
const { count } = require("console");
const fs = require("fs");
const { nextTick } = require("process");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./예제.txt";
let input = fs.readFileSync(filePath).toString().trim().split('\n');


// const fs = require('fs'); 
// let input = fs.readFileSync("/dev/stdin").toString().trim().split('\n');

const N=+input.shift();
let array=[];
for (let i=0;i<N;i++){
    array.push(+input[i].trim())
}
array=array.sort();


let sum=array.reduce((a,b)=>a+b);
let average=Math.round(sum/N)
if (average===-0){
    average=0
}
console.log(average)


array=array.sort((a,b)=>a-b);

if (N%2===0){
    console.log(array[N/2]+array[N/2-1])
}else{
    console.log(array[Math.floor(N/2)])
}


let map=new Map();
for (let i=0;i<N;i++){
    if (map.has(array[i])){
        map.set(array[i], map.get(array[i])+1);
    }else{
        map.set(array[i],1);
    }
}
let max=0;
let array2=[];
map.forEach((el, key)=>{
    if (max<el){
        max=el;
        array2=[];
        array2.push(key);
    }else if(max===map.get(key)){
        array2.push(key);
    }
})

array2=array2.sort((a,b)=>a-b)
if (array2.length!==1){
    console.log(array2[1])
}else{
    console.log(array2[0])
}


let range=Math.max(...array)-Math.min(...array)
console.log(range)

🧵 참고한 정답지 🧵

💡💡 기억해야 할 점 💡💡

new Map() – 맵을 만듭니다.
map.set(key, value) – key를 이용해 value를 저장합니다.
map.get(key) – key에 해당하는 값을 반환합니다. key가 존재하지 않으면 undefined를 반환합니다.
map.has(key) – key가 존재하면 true, 존재하지 않으면 false를 반환합니다.
map.delete(key) – key에 해당하는 값을 삭제합니다.
map.clear() – 맵 안의 모든 요소를 제거합니다.
map.size – 요소의 개수를 반환합니다.

출처 : https://ko.javascript.info/map-set

profile
이건 대체 어떻게 만든 거지?

0개의 댓글