티스토리 뷰
반응형
// 1.
const fs = require('fs');
const [ , ...rest ] = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const cases = rest.map(line => { return line.split(' ')});
// 2.
function make_round(case_arr) {
const [ students, ...points ] = case_arr;
const sum = points.reduce((acc, curr) => acc + curr);
const avg = sum / students;
let over_avg = points.filter(point => avg < point).length;
return ((over_avg / students) * 100).toFixed(3).toString() + '%';
}
// 3.
cases.forEach(each_case => {
console.log(
make_round( each_case.map( num => parseInt(num) ) )
);
});
- 입력 받은 값 중 첫 번째 줄을 제외하고 두번째 줄(각 테스트 케이스)부터 rest 배열에 초기화한다.
초기화된 rest 배열은 모든 테스트 케이스를 문자열로 갖고 있으므로, map 메소드를 통해 이를 다시 배열로 바꾸어준다.
결과 cases는 모든 테스트 케이스를 각각 배열로 포함하는 2차원 배열이 된다. - make_round 함수는 배열을 매개 변수로 받아 학생의 수와 학생의 점수들로 나누고, 이를 토대로 평균을 넘는 학생 비율을 반환한다.
학생들의 점수 합은 reduce를 통해 구하고, 이를 통해 평균 값인 avg를 구한 후 filter 메소드를 통해 평균을 넘는 학생을 구해주었다. - 이차원 배열을 순회하며, 각 테스트 케이스를 2.에서 작성한 make_round 함수에 전달한 후 반환받은 결과를 출력한다.
결과
9396 KB / 192 ms
'Dev. > coding test' 카테고리의 다른 글
[BaekJoon] 11652 카드 (node.js) (0) | 2021.07.12 |
---|---|
[BaekJoon] 9461 파도반 수열 (node.js) (0) | 2021.07.12 |
[BaekJoon] 11047 동전 0 (node.js) (0) | 2021.07.09 |
[BaekJoon] 1018 체스판 다시 칠하기 (node.js) (0) | 2021.07.09 |
[BaekJoon] 1620 나는야 포켓몬 마스터 이다솜 (node.js) (0) | 2021.07.08 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- JPA
- Java
- mysql
- IntelliJ
- Database
- kotlin
- Docker
- Puppeteer
- jQuery
- javascript
- Spring Cloud Config
- Node.js
- etc
- hashicorp
- pgloader
- JEST
- terraform
- AWS
- eureka
- Gradle
- shell
- dev
- AWS IoT
- Vault
- postgresql
- spring boot
- Linux
- 코딩테스트
- react
- Git
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함