https://www.acmicpc.net/problem/1546
문제
- 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 이를 평균 내는 프로그램을 작성하시오.
- 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다.
- 첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-2 이하이면 정답이다.
풀이
const fs = require('fs');
const inputData = fs
.readFileSync(0,'utf8')
.toString()
.trim()
.split('\n')
// const inputData = ['4','1 100 100 100']
const caseN = parseInt(inputData[0])
const score = inputData[1].split(' ').map((i)=>parseInt(i))
const scoreMax = Math.max(...score);
const newScore = score.map((i)=>i/scoreMax*100)
const newScoreSum = newScore.reduce((a,b)=>a+b,0);
const average = newScoreSum/caseN
console.log(average)
reduce 참고
2022.08.22 - [algorithm/백준] - [JS] 10871 X보다 작은 수 reduce/for
'algorithm > 백준' 카테고리의 다른 글
[JS] 2562 최댓값 (0) | 2022.09.09 |
---|---|
[JS] 3052 나머지 중복제거(Set/filter&indexOf) (0) | 2022.09.09 |
[JS] 10818 최소,최대 for문/Math 메서드 (0) | 2022.09.06 |
[JS] 3003 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2022.08.25 |
[JS] 1110 더하기 사이클 문자열 / 숫자 (0) | 2022.08.25 |
댓글