본문 바로가기
코딩 테스트/[JAVA] 백준

[JAVA] 백준 2754번 학점계산 | BOJ 백준 bronze 3

by M개발자 2022. 3. 18.
반응형

학점계산

 

어떤 사람의 C언어 성적이 주어졌을 때, 평점은 몇 점인지 출력하는 프로그램을 작성하시오.

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


예제 입출력

 

입력 출력
A0 4.0

 


코드

 

1. 성적 입력받기

Scanner를 이용하여 String 형으로 성적을 입력받는다.

 

2. "F"일 경우 처리

학점이 "F"일 경우 switch문에서 오류가 발생하므로 바로 0.0을 반환하고 종료한다.

 

3. 아스키 코드를 이용해서 1의 자리 점수 구하기

성적의 앞부분은 A, B, C, D이다. 아스키코드로는 65, 66, 67, 68이므로 D의 점수를 1로 만드려면 69 - D를 하면 된다.charAt을 사용하여 0의 자리를 잘라내어 계산하였다.

 

4. switch문을 이용하여 소수점 계산하기

if문을 사용해도 상관없다. charAt() 메소드를 사용하여 1의 자리를 잘라내었다.

'+'일 경우 점수에 0.3을 더하고 '-'일 경우 0.3을 뺀다.

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String score = scanner.next();

        if (score.equals("F")) {
            System.out.println(0.0);
            return;
        }

        double answer = 0.0;
        answer += 69 - score.charAt(0);

        switch (score.charAt(1)) {
            case '+':
                answer += 0.3;
                break;
            case '-':
                answer -= 0.3;
        }

        System.out.println(answer);
    }
}

아스키 코드를 이용하여 계산한다면 코드를 줄일 수 있는데 다른 사람들의 코드를 보고 조금 놀랐다 o.o

 

2754번: 학점계산

어떤 사람의 C언어 성적이 주어졌을 때, 평점은 몇 점인지 출력하는 프로그램을 작성하시오. 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

www.acmicpc.net

 

반응형

댓글