본문 바로가기
코딩테스트 준비/백준

[백준] 25206번 - 너의 평점은 [Java]

by mwzz6 2025. 1. 8.

https://www.acmicpc.net/problem/25206

 

[백준] 25206번 - 너의 평점은 [Java]
[백준] 25206번 - 너의 평점은 [Java]
[백준] 25206번 - 너의 평점은 [Java]
[백준] 25206번 - 너의 평점은 [Java]


1.  아이디어

 

HashMap을 활용해서 등급에 따른 평점을 간단하게 구할 수 있다.


2. 문제풀이

 

HashMap에 key에 등급, value에 과목평점을 저장한 후 반복문을 돌며 과목 총점과 과목 수를 구한 후 나누는 방식으로 구현했다.

과목 등급이 P인 경우만 주의해서 구현하면 된다.


3. 코드

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;

        Map<String, Double> map = init();
        double sum = 0;
        double div = 0;

        for (int i = 0; i < 20; i++) {
            st = new StringTokenizer(br.readLine());
            String subject = st.nextToken();
            double score = Double.parseDouble(st.nextToken());
            String grade = st.nextToken();

            if (grade.equals("P")) continue;

            sum += map.get(grade) * score;
            div += score;
        }

        System.out.println(sum / div);
    }

    private static Map<String, Double> init() {
        Map<String, Double> map = new HashMap<>();
        map.put("A+", 4.5);
        map.put("A0", 4.0);
        map.put("B+", 3.5);
        map.put("B0", 3.0);
        map.put("C+", 2.5);
        map.put("C0", 2.0);
        map.put("D+", 1.5);
        map.put("D0", 1.0);
        map.put("F", 0.0);
        return map;
    }

}

4. 후기