백준 1546번 JavaScript 문제

Cho Dragoo·2021년 5월 14일
0
post-thumbnail

JavaScript 백준 온라인 알고리즘 공부

백준 1546 번 JavaScript 문제

평균
https://www.acmicpc.net/problem/1546



본인이 제출한 답

const fs = require("fs");
const [...arr] = (process.platform === "linux"
  ? fs.readFileSync("/dev/stdin").toString()
  : `3
10 20 30
`
)
  .trim()
  .split("\n");

let inputLines = [];
let arrLines = arr.map((element) => element.split(" "));
arrLines.forEach((arrLines) => {
  inputLines.push(arrLines.map((e) => Number(e)));
});

let N = inputLines[0][0];
let newArr = inputLines[1].sort((a, b) => a - b);
let M = newArr[N - 1];
let sum = 0;

let scoreSumArr = newArr.map((score) => (score / M) * 100);
scoreSumArr.forEach((score) => {
  sum += score;
});
let answer = sum / N;

console.log(answer);

풀이과정 소감

  • 점수가 들어간 배열에 sort()를 적용하면 그 배열의 N-1번째가 최댓값의 점수가 된다. 숫자타입을 다루는 배열에 최소 최댓값의 순서 정렬작업은 sort((a, b) => a - b) 는 거의 필수이며 공식이 되버린 것 같다. a,b 를 넣는 습관을 들여야겠다고 생각....

  • 그 다음은 하던데로 map()forEach()를 잘 조합해 쓰면 무난히 풀리는 문제이지만 아직까지 map()과 forEach()를 구별해 쓰는게 자연스럽지 않았다. 이 부분에서 좀 더 확실히 개념정립할 필요성을 느꼈다.

profile
어떤 문제든 파악 할 수 있으며 해결책을 찾을 수 있는 개발능력을 꿈꾸고 있습니다.

0개의 댓글