์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ ์ ์์ ํด๋นํ๋ ๋ฑ๊ธ์ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
์ธ์ 1 : score
number ํ์
์ ์ ์
string ํ์
์ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
๊ฐ ๋ฑ๊ธ์ ์ต์ ์ ์๋ ์๋์ ๊ฐ์ต๋๋ค. ('F'์ ๊ฒฝ์ฐ ์ต๋ ์ ์๋ฅผ ํ๊ธฐ)
90 ์ด์ --> 'A'
80 ์ด์ --> 'B'
70 ์ด์ --> 'C'
60 ์ด์ --> 'D'
60 ๋ฏธ๋ง --> 'F'
๋ง์ฝ ์ฃผ์ด์ง ์ ์๊ฐ 100์ ์ด๊ณผํ๊ฑฐ๋ 0 ๋ฏธ๋ง์ธ ๊ฒฝ์ฐ, ๋ฌธ์์ด 'INVALID SCORE'๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
๊ฐ ๋ฑ๊ธ์ ์ต๊ณ ์ ์๋ณด๋ค 7์ ์ดํ์ธ ๊ฒฝ์ฐ, ๋ฑ๊ธ๊ณผ ํจ๊ป '-'๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค. (๋จ, 93์ ์ ๊ฒฝ์ฐ์๋ A๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค.)
๊ฐ ๋ฑ๊ธ์ ์ต์ ์ ์๋ณด๋ค 8์ ์ด์์ธ ๊ฒฝ์ฐ, ๋ฑ๊ธ๊ณผ ํจ๊ป '+'๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
F+ ์ F- ๋ ์กด์ฌํ์ง ์์ต๋๋ค.
1
let output = convertScoreToGradeWithPlusAndMinus(91);
2
console.log(output); // --> 'A-'
๊ตฌ๊ธ๋ง์ ํ์ฌ ์ฐธ๊ณ ํ code ์ ๋๋ค.
convertScoreToGradeWithPlusAndMinus ํจ์ :
let unitDigit = score % 10; // 1์์๋ฆฌ
๋ง์ฝ ์ฃผ์ด์ง ์ ์๊ฐ 100์ ์ด๊ณผํ๊ฑฐ๋ 0 ๋ฏธ๋ง์ธ ๊ฒฝ์ฐ, ๋ฌธ์์ด 'INVALID SCORE'๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
if(score > 100 || score < 0) return "INVALID SCORE";
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); // ๋ฑ๊ธ + ๋ถํธ
๊ฐ ๋ฑ๊ธ์ ์ต๊ณ ์ ์๋ณด๋ค 7์ ์ดํ์ธ ๊ฒฝ์ฐ, ๋ฑ๊ธ๊ณผ ํจ๊ป '-'๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค. (๋จ, 93์ ์ ๊ฒฝ์ฐ์๋ A๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค.)
๊ฐ ๋ฑ๊ธ์ ์ต์ ์ ์๋ณด๋ค 8์ ์ด์์ธ ๊ฒฝ์ฐ, ๋ฑ๊ธ๊ณผ ํจ๊ป '+'๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
F+ ์ F- ๋ ์กด์ฌํ์ง ์์ต๋๋ค.
function signMaker(unitDigit){
if(unitDigit >= 8 && unitDigit <= 9) return '+';
else if(unitDigit >= 0 && unitDigit <= 2) return '-';
else return '';
}