HackerRank
[해커랭크] (Implementation Algorithms) Grading Students (javascript)
hee0
2022. 8. 22. 17:42
학생 등급 채점
규칙
- 학생이 받는 등급범위는 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;
}
// ..후략