[백준] 25206번 - 평점 계산 (java)

팥빵·2025년 5월 28일

Baekjoon

목록 보기
19/49

>>문제 바로가기<<

학점과 등급에 따른 전공평점을 계산하는 문제이다.
등급에 따른 과목평점을 잘 mapping만 시켜주면 어렵지 않게 풀 수 있다.

단, "P학점"은 계산에서 제외해야 하며,
최소 한 과목은 P등급을 받지 않는다.

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

class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        
        HashMap<String, Float> hm = new HashMap<String, Float>();
        hm.put("A+", 4.5f);
        hm.put("A0", 4.0f);
        hm.put("B+", 3.5f);
        hm.put("B0", 3.0f);
        hm.put("C+", 2.5f);
        hm.put("C0", 2.0f);
        hm.put("D+", 1.5f);
        hm.put("D0", 1.0f);
        hm.put("F", 0.0f);
        // 등급과 전공평점 mapping
        
        float totalPoints = 0;
        float totalCredits = 0;
        
        for(int i=0; i<20; i++){
            String s = br.readLine();
            st = new StringTokenizer(s, " ");
            
            st.nextToken();		// 과목은 계산에 사용x => 버림
            float credit = Float.parseFloat(st.nextToken());
            String grade = st.nextToken();
            
            if(!grade.equals("P")){		// P등급은 계산에서 제외
                totalPoints += credit * hm.get(grade);	// mapping된 컬렉션 호출로 계산
                totalCredits += credit;
            }
        }
        
        System.out.println(totalPoints/totalCredits);
        br.close();
    }
}

맞았습니다!!

profile
반갑습니다

0개의 댓글