학생 등급 채점
규칙
- 학생이 받는 등급범위는 0~100
- 등급이 40보다 작은 경우 낙제
- 입력된 등급의 다음 5배수 값을 구하여, 그 차가 3보다 작을 경우 5배수값으로 등급 조정
- 등급이 38보다 작은 경우 반올림하지 않음 (계산해도 낙제이기 때문)
제한사항
- 1 ≤ n ≤ 60
- 0 ≤ grades[i] ≤ 100
나의 풀이
- 등급이 38보다 작은 경우 자체 점수 반환
- 5배수 구하기
- Math.ceil({val}/5)*5;
- 5로 나눈 정수값 * 5 ( 반올림 - round, 올림 - ceil, 버림 - floor)
- Math.ceil({val}/5)*5;
- 5배수와 기존 등급의 차가 3보다 작을 경우, 5배수값으로 등급 조정
- 아닌 경우 자체 점수 반환
// 생략
/*
* Complete the 'gradingStudents' function below.
*
* The function is expected to return an INTEGER_ARRAY.
* The function accepts INTEGER_ARRAY grades as parameter.
*/
function gradingStudents(grades) {
// Write your code here
const final = grades.map(g => {
let grade = g;
if (grade >= 38) {
const multiple = Math.ceil(g/5)*5;
const diff = multiple - g;
if (diff < 3) {
grade = multiple;
}
}
return grade;
});
return final;
}
// ..후략
결과
'HackerRank' 카테고리의 다른 글
[해커랭크] (Data Structures - Arrays) 2D array - DS; 모래시계 행렬 (javascript) (0) | 2022.09.05 |
---|---|
[해커랭크] (Implementation Algorithms) Number Line Jumps (javascript) (0) | 2022.08.22 |
[해커랭크] (Constructive Algorithms) Flipping the Matrix (0) | 2022.08.21 |
[해커랭크] (1 Week Day 1) Time Conversion (javascript) (0) | 2022.08.21 |
[해커랭크] (1Week - Day 1) Mini-Max Sum (javascript) (0) | 2022.08.21 |