알고리즘/JavaScript | AG
[조건문] 주어진 score을 학점으로 변환하기 (A+, A, A- , ... , F)
화이트그래머
2020. 6. 16. 18:02
문제 설명
점수가 주어졌을때, "convertScoreToGradeWithPlusAndMinus" 함수는 주어진 점수와 대응하는 등급을 문자열로 반환합니다.
조건
-
(100 - 90) --> 'A'
-
(89 - 80) --> 'B'
-
(79 - 70) --> 'C'
-
(69 - 60) --> 'D'
-
(59 - 0) --> 'F'
-
만약 주어진 점수가 100을 초과하거나 0 미만이라면 INVALID SCORE 를 반환해야 합니다.
-
만약 점수의 1의 자리가 0~2 사이라면 등급과 함께 '-'를 반환해야 합니다.
-
만약 점수의 1의 자리가 8~9 사이라면 등급과 함께 '+'를 반환해야 합니다.F+ 와 F- 는 존재하지 않습니다.
입출력 예시
let output = convertScoreToGradeWithPlusAndMinus(91);
console.log(output); // 'A-'
*풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
function signMaker(unitDigit){
if(unitDigit >= 8 && unitDigit <= 9) return '+';
else if(unitDigit >= 0 && unitDigit <= 2) return '-';
else return '';
}
function convertScoreToGradeWithPlusAndMinus(score) {
let tenDigit = Math.floor(score / 10); // 10의자리
let unitDigit = score % 10; // 1의자리
let grade; // 학점
if(score > 100 || score < 0) return "INVALID SCORE";
if(score === 100) return 'A+';
if(score >= 90) grade = 'A'
else if(score >= 80) grade = 'B';
else if(score >= 70) grade = 'C';
else if(score >= 60) grade = 'D';
else if(score >= 0) return 'F'; // F일 경우 바로 리턴
return grade + signMaker(unitDigit); // 등급 + 부호
}
|
cs |