전공평점 = (학점 * 과목평점) / 학점의 총합

학점 , 등급 변환

 

과목, 학점, 등급을 입력받은 후

등급이 P 가 아닐 때만, 전공 학점 (학점 * 과목평점) / 학점을 누적시키면된다.

 

누적된 학점의 총합 (P 등급이 제외된) 과 전공 학점을 구할 수 있다.

package org.example;

import java.util.*;

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

        double totalScore = 0;
        double sumOfGradeAndSubjectAveragePoint = 0;

        for (int i = 0; i < 20; i++) {
            String subject = "";
            double score = 0;
            String grade = "";

            subject = sc.next();
            score = sc.nextDouble();
            grade = sc.next();

            if(!grade.equals("P")){
                sumOfGradeAndSubjectAveragePoint += majorScore(score, grade);
                totalScore+= score;
            }
        }
        double rst = result(totalScore, sumOfGradeAndSubjectAveragePoint);
        System.out.println(rst);
    }

    public static double majorScore(double score, String grade){
        // 등급 , 점수
        Map<String, Double> convertTo = new HashMap<>();
        convertTo.put("A+", 4.5);
        convertTo.put("A0", 4.0);
        convertTo.put("B+", 3.5);
        convertTo.put("B0", 3.0);
        convertTo.put("C+", 2.5);
        convertTo.put("C0", 2.0);
        convertTo.put("D+", 1.5);
        convertTo.put("D0", 1.0);
        convertTo.put("F", 0.0);

        return score * convertTo.get(grade);
    }

    public static double result (double sum, double sumOfEachScore){
        return sumOfEachScore / sum;
    }
}