Computer Science (CS)/알고리즘

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

eune7 2023. 5. 13. 15:01
728x90
반응형

 

 

 

 

 

 

문제

 

 

 

정답 풀이

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

// 전공 평점 = (SUM(학점X과목평점)) / SUM(학점)
// 과목 평점 = 등급에 따라, P는 제외

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

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        double sumNumxScore = 0;
        double sumNum = 0;

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

            // P가 아닐 때만 체크
            if(!(alphabet.equals("P"))){
                // 과목 평점 계산
                switch (alphabet) {
                    case "A+":
                        score = 4.5;
                        break;
                    case "A0":
                        score = 4.0;
                        break;
                    case "B+":
                        score = 3.5;
                        break;
                    case "B0":
                        score = 3.0;
                        break;
                    case "C+":
                        score = 2.5;
                        break;
                    case "C0":
                        score = 2.0;
                        break;
                    case "D+":
                        score = 1.5;
                        break;
                    case "D0":
                        score = 1.0;
                        break;
                    case "F":
                        score = 0.0;
                        break;
                    default:
                        break;
                }

                sumNumxScore += (num*score);
                sumNum += num;
            }
        }
        // 소수점 아래 6자리까지 출력
        System.out.printf("%.6f", sumNumxScore/sumNum);
        br.close();
    }
}
  • 메모리 14656KB
  • 시간 136ms

어려운 문제를 풀다가 이 문제를 푸니 마음이 편해지네요ㅎㅎ

과목 점수를 보고 switch문이 바로 떠올랐어요.

하나 체크해줘야 할 점은 P는 체크해주지 않는다는 점!

실수로 받아야 하니까 double형이나 float형으로 값을 받아주시고요!

예제 출력을 보고 소수점 아래 6자리까지만 출력해줬습니다.

 

 

 

 

 

728x90
반응형