2754. 학점계산
문제 풀이
js
const testcases = [
{
input: 'A0',
output: '4.0',
},
{
input: 'A+',
output: '4.3',
},
];
const grade = {
'A+': '4.3',
A0: '4.0',
'A-': '3.7',
'B+': '3.3',
B0: '3.0',
'B-': '2.7',
'C+': '2.3',
C0: '2.0',
'C-': '1.7',
'D+': '1.3',
D0: '1.0',
'D-': '0.7',
F: '0.0',
};
function solution(input) {
return grade[input.trim()];
}
export default { testcases, solution };
js
const testcases = [
{
input: 'A0',
output: '4.0',
},
{
input: 'A+',
output: '4.3',
},
];
const grade = {
'A+': '4.3',
A0: '4.0',
'A-': '3.7',
'B+': '3.3',
B0: '3.0',
'B-': '2.7',
'C+': '2.3',
C0: '2.0',
'C-': '1.7',
'D+': '1.3',
D0: '1.0',
'D-': '0.7',
F: '0.0',
};
function solution(input) {
return grade[input.trim()];
}
module.exports = { testcases, solution };
ts
import type { Testcases, Input, Output } from 'bananass';
const testcases = [
{
input: 'A0',
output: '4.0',
},
{
input: 'A+',
output: '4.3',
},
] satisfies Testcases;
const grade = {
'A+': '4.3',
A0: '4.0',
'A-': '3.7',
'B+': '3.3',
B0: '3.0',
'B-': '2.7',
'C+': '2.3',
C0: '2.0',
'C-': '1.7',
'D+': '1.3',
D0: '1.0',
'D-': '0.7',
F: '0.0',
};
function solution(input: Input): Output {
return grade[input.trim()];
}
export default { testcases, solution };
ts
import type { Testcases, Input, Output } from 'bananass';
const testcases = [
{
input: 'A0',
output: '4.0',
},
{
input: 'A+',
output: '4.3',
},
] satisfies Testcases;
const grade = {
'A+': '4.3',
A0: '4.0',
'A-': '3.7',
'B+': '3.3',
B0: '3.0',
'B-': '2.7',
'C+': '2.3',
C0: '2.0',
'C-': '1.7',
'D+': '1.3',
D0: '1.0',
'D-': '0.7',
F: '0.0',
};
function solution(input: Input): Output {
return grade[input.trim()];
}
module.exports = { testcases, solution };
해설
이번 문제는 자바스크립트의 객체Object, Map
혹은 switch
문을 이용하여 학점과 점수를 매핑하면 쉽게 풀 수 있는 문제입니다.
주의할 부분은, input
에 trim()
을 통해 공백을 제거해야만 문제가 정상적으로 풀린다는 점입니다. 예를 들어, 입력값에 A0\n
과 같이 공백이 포함된 경우, grade[input]
을 통해 정상적인 값을 매핑할 수 없습니다.