본문 바로가기

알고리즘/JavaScript | AG

[조건문] 주어진 score을 학점으로 변환하기 (A+, A, A- , ... , F)

문제 설명

점수가 주어졌을때, "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 <= 9return '+';
    else if(unitDigit >= 0 && unitDigit <= 2return '-';
    else return '';
}
 
function convertScoreToGradeWithPlusAndMinus(score) {
    let tenDigit = Math.floor(score / 10); // 10의자리 
    let unitDigit = score % 10// 1의자리
    let grade; // 학점
 
    if(score > 100 || score < 0return "INVALID SCORE";
    if(score === 100return '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 >= 0return 'F'// F일 경우 바로 리턴
 
    return grade + signMaker(unitDigit); // 등급 + 부호
}
cs