알고리즘

백준 25206 (Java)

Codult 2023. 11. 28. 16:38
728x90

1) HashMap<String, Double> gradeMap 선언한다. (key: 학점, value: 학점별 점수)

2) score의 합, score*grade의 합을 저장할 변수를 선언한다. (scoreSum, scoreAndGradeSum)

3) subject, score, grade 순서대로 입력받은 값들을 저장한다.

4) grade가 P인 경우는 계산에서 제외하므로, if 조건문으로 P가 아닌 경우에만 계산 실행되도록 한다.

5) 계산: scoreSum에 score 더함, scoreAndGradeSum에 score*grade(value) 더함

6) scoreAndGradeSum / scoreSum 값을 출력한다.

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        HashMap<String, Double> gradeMap = new HashMap<>();
        double scoreSum = 0.0;
        double scoreAndGradeSum = 0.0;
        gradeMap.put("A+", 4.5);
        gradeMap.put("A0", 4.0);
        gradeMap.put("B+", 3.5);
        gradeMap.put("B0", 3.0);
        gradeMap.put("C+", 2.5);
        gradeMap.put("C0", 2.0);
        gradeMap.put("D+", 1.5);
        gradeMap.put("D0", 1.0);
        gradeMap.put("F", 0.0);
        for (int i=0; i<20; i++){
            String subject = sc.next();
            double score = sc.nextDouble();
            String grade = sc.next();
            if (!grade.equals("P")){
                scoreSum = scoreSum + score;
                scoreAndGradeSum = scoreAndGradeSum + score * gradeMap.get(grade);
            }
        }
        System.out.println(scoreAndGradeSum/scoreSum);
    }
}

 

 

728x90