본문으로 건너뛰기

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문을 이용하여 학점과 점수를 매핑하면 쉽게 풀 수 있는 문제입니다.

주의할 부분은, inputtrim()을 통해 공백을 제거해야만 문제가 정상적으로 풀린다는 점입니다. 예를 들어, 입력값에 A0\n과 같이 공백이 포함된 경우, grade[input]을 통해 정상적인 값을 매핑할 수 없습니다.