코린이의 소소한 공부노트

[백준 온라인 저지] 25206. 너의 평점은 본문

코딩테스트 풀이/JAVA

[백준 온라인 저지] 25206. 너의 평점은

무지맘 2023. 4. 17. 14:55

1. 입력

- 20줄에 걸쳐 치훈이가 수강한 전공과목의 과목명, 학점, 등급이 공백으로 구분되어 주어진다.

- 1 과목명의 길이 50

- 과목명은 알파벳 대소문자 또는 숫자로만 이루어져 있으며, 띄어쓰기 없이 주어진다.

- 입력으로 주어지는 모든 과목명은 서로 다르다.

- 학점은 1.0,2.0,3.0,4.0중 하나이다.

- 등급은 A+,A0,B+,B0,C+,C0,D+,D0,F,P중 하나이다.

- 적어도 한 과목은 등급이 P가 아님이 보장된다.

 

2. 출력

- 치훈이의 전공평점을 출력한다.

- 전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다.

- 등급이 P인 과목은 계산에서 제외한다.

- 정답과의 절대오차 또는 상대오차가 10^{-4} 이하이면 정답으로 인정한다.

 

3. 코드

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        double h = 0, g = 0;
        for(int i=0 ; i<20 ; i++){
            String[] s = br.readLine().split(" ");
            if(!s[2].equals("P")) {
            	double n = Double.valueOf(s[1]);
            	h += n;
                switch(s[2]){
                    case "A+": g += 4.5*n; break;
                    case "A0": g += 4.0*n; break;
                    case "B+": g += 3.5*n; break;
                    case "B0": g += 3.0*n; break;
                    case "C+": g += 2.5*n; break;
                    case "C0": g += 2.0*n; break;
                    case "D+": g += 1.5*n; break;
                    case "D0": g += 1.0*n;
                }
            }
        }
        System.out.println(g/h);
    }
}