코딩 성장기

점수에 따른 등급 리턴하기 본문

알고리즘 공부/Algorithm in JS

점수에 따른 등급 리턴하기

김소우 2022. 1. 24. 00:14
  • 만약 주어진 점수가 100을 초과하거나 0 미만인 경우, 문자열 'INVALID SCORE'를 리턴해야 합니다.
  • 각 등급의 최고 점수보다 7점 이하인 경우, 등급과 함께 '-'를 리턴해야 합니다. (단, 93점의 경우에는 A를 리턴해야 합니다.)
  • 각 등급의 최저 점수보다 8점 이상인 경우, 등급과 함께 '+'를 리턴해야 합니다.
  • F+ 와 F- 는 존재하지 않습니다.

내가 쓴 코드

function convertScoreToGradeWithPlusAndMinus(score) {
  //A+ 받는경우와 F 받는경우 처리
  if(score === 100){
    return 'A+'
  } 
  if(0 <= score && score < 60){
    return 'F'
  }

  let unitsDigit = score % 10;
  if(90<= score && score <100){
    if(0<= unitsDigit && unitsDigit <4){
      return 'A-'
    }else if(4<= unitsDigit &&  unitsDigit <8 ){
      return 'A'
    }else {
      return 'A+'
    }
  }else if(80<= score && score <90){
    if(0<= unitsDigit && unitsDigit <4){
      return 'B-'
    }else if(4<= unitsDigit &&  unitsDigit <8 ){
      return 'B'
    }else {
      return 'B+'
    }
  }else if(70<= score && score <80){
      if(0<= unitsDigit && unitsDigit <4){
      return 'C-'
    }else if(4<= unitsDigit &&  unitsDigit <8 ){
      return 'C'
    }else {
      return 'C+'
    }
  }else if(60<= score && score <70){
      if(0<= unitsDigit && unitsDigit <4){
      return 'D-'
    }else if(4<= unitsDigit &&  unitsDigit <8 ){
      return 'D'
    }else {
      return 'D+'
    }
  }else {
    return 'INVALID SCORE';
  }
}

코드스테이츠 모범 답안

function plusOrMinus(score) {
  const extra = score % 10;
  if (extra <= 2) {
    return '-';
  } else if (extra >= 8) {
    return '+';
  } else {
    return '';
  }
}

function convertScoreToGradeWithPlusAndMinus(score) {
  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) {
    grade = 'F';
  }

  if (grade !== 'F') {
    grade = grade + plusOrMinus(score);
  }
  return grade;
}

차이점

- +/- 구분을 주는 함수를 따로 만들어서 코드를 간결하게 하였음

 

고쳐야 할 점

- 코드를 작성하기 전에 반복되는 부분이 있는지 한번 더 생각해보고

반복되는 부분이 있다면 따로 반복문 처리를 하거나, 새로운 함수를 만들어서

처리하도록 한다.