© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 2754 - 학점계산

2023-08-02
BOJ
브론즈 III
java
원본 문제 보기
구현
문자열

문제

BOJ 2754 - 학점계산

학점(A+, B0, C- 등)이 주어질 때 대응하는 평점(4.3, 3.0, 1.7 등)을 출력한다.

입력

첫째 줄에 학점이 주어진다 (A+, A0, A-, B+, ..., D-, F).

출력

학점에 대응하는 평점을 출력한다.

예제

입력출력
A+4.3
F0.0

풀이

학점 문자열의 첫 글자로 기본 점수를 결정하고, 둘째 글자로 +0.3 또는 -0.3을 조정한다.

  1. 첫 글자가 A이면 4, B이면 3, C이면 2, D이면 1, F이면 0.0을 출력하고 종료한다
  2. F가 아닌 경우 둘째 글자가 '+'이면 +0.3, '-'이면 -0.3을 더한다
  3. 최종 점수를 출력한다

핵심 아이디어: 학점 체계의 규칙성을 이용하여 A=4, B=3, C=2, D=1 매핑 후 +/- 보정으로 처리한다.

코드

package day549;
 
import java.io.*;
 
public class Day542BOJ2754학점계산 {
  public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String s = br.readLine();
    double grade = 0;
    char c = s.charAt(0);
    if (c == 'A') {
      grade = 4;
    } else if (c == 'B') {
      grade = 3;
    } else if (c == 'C') {
      grade = 2;
    } else if (c == 'D') {
      grade = 1;
    } else {
      System.out.print("0.0");
      return;
    }
    c = s.charAt(1);
    if (c == '+') {
      grade += 0.3;
    } else if (c == '-') {
      grade -= 0.3;
    }
    System.out.print(grade);
  }
}

복잡도

  • 시간: O(1)
  • 공간: O(1)