📌 문제
📌 풀이
const input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
const score = input[1].split(' ').map(Number);
const max = Math.max(...score);
const newArr = score.map(x => x / max * 100);
let num = 0;
for (let i = 0; i < newArr.length; i++) {
num += newArr[i]
}
const average = num / newArr.length;
console.log(average);
Math.max()
: 원래 점수 중에 최댓값을 찾는다- map 반복문으로 모든 점수를 '점수/최댓값*100' 으로 바꾸어 새로운 배열로 만든다
- for 반복문으로 새로운 배열 안의 값들을 모두 더한 후, 새로운 배열의 length 만큼 나누어 평균을 출력한다
.reduce() 를 활용한 풀이법
const input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
const score = input[1].split(' ').map(Number);
const max = Math.max(...score);
const newArr = score.map(x => x / max * 100);
const num = newArr.reduce((prev, curr) => prev + curr);
const average = num / newArr.length;
console.log(average);
- 위 풀이에서 새로운 배열 안의 값들을 모두 더하기 위해 for 반복문을 이용했다면,
.reduce()
를 이용해 누적된 값을 더해 출력할 수 있다
728x90
'배움 기록 > 코테 연습' 카테고리의 다른 글
[알고리즘] 백준 11720번 : JavaScript(Node.js) 풀기 (0) | 2023.10.16 |
---|---|
[알고리즘] 백준 9086번 : JavaScript(Node.js) 풀기 (0) | 2023.10.04 |
[알고리즘] 백준 10811번 : JavaScript(Node.js) 풀기 (0) | 2023.08.06 |
[알고리즘] 백준 10813번 : JavaScript(Node.js) 풀기 (0) | 2023.07.30 |
[알고리즘] 백준 10810번 : JavaScript(Node.js) 풀기 (0) | 2023.07.23 |
댓글