CodingTest

백준_25206번_너의평점은_자바

Lcoding 2023. 12. 15. 11:42
반응형

해당 문제는 문제에 쓰여있는 공식 [전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다.]이 제일 중요한 부분 이었으며, 별 다른 특이점이나 알고리즘없이 구현문제?처럼 풀면 되는 부분이었다.
학점을 배열에 넣어서 반복문으로 조회하는 방법도 있겠지만 CASE문이 더 직관적이기에 해당 방법을 이용하였다.


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {


    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        double result=0;
        double sum=0;

        for (int i = 0; i <20; i++) {
            String[] s = br.readLine().split(" ");
            double d = Double.parseDouble(s[1]);
            double d2 = 0;
            String grade = s[2];
            if(grade.equals("P")) {
                continue;
            }else {
                switch (grade) {
                    case "A+":  d2 = 4.5;
                        break;
                    case "A0":  d2 = 4.0;
                        break;
                    case "B+":  d2 = 3.5;
                        break;
                    case "B0":  d2 = 3.0;
                        break;
                    case "C+":  d2 = 2.5;
                        break;
                    case "C0":  d2 = 2.0;
                        break;
                    case "D+":  d2 = 1.5;
                        break;
                    case "D0":  d2 = 1.0;
                        break;
                    case "F":  d2 = 0.0;
                }
                sum += d;
                result = result+(d*d2);

            }
        }
            System.out.printf("%.6f", result/sum);
    }
}

 

반응형