happy coding

[java] 25206. 너의 평점은 본문

coding study/baekjoon

[java] 25206. 너의 평점은

yeoonii 2023. 8. 18. 21:41
import java.io.*;
import java.util.*;

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

        int N = 20; // 과목 개수

        double totalScore = 0; // 총 점수
        double totalCredit = 0; // 총 학점
        boolean hasPFGrade = false; // P/F 과목 여부

        for (int i = 0; i < N; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");

            String subject = st.nextToken(); // 과목명
            double credit = Double.parseDouble(st.nextToken()); // 학점
            String grade = st.nextToken(); // 등급

            if (grade.equals("P")) {
                hasPFGrade = true; // P/F 과목이 있다면 표시
                continue; // P/F 과목은 계산에서 제외
            }

            double gradePoint = getGradePoint(grade); // 등급에 따른 과목평점

            totalScore += gradePoint * credit; // 총 점수 누적
            totalCredit += credit; // 총 학점 누적
        }

        double gpa = totalScore / totalCredit; // 전공평점 계산

        System.out.println(gpa);
    }

    // 등급에 따른 과목평점을 반환하는 함수
    public static double getGradePoint(String grade) {
        switch (grade) {
            case "A+":
                return 4.5;
            case "A0":
                return 4.0;
            case "B+":
                return 3.5;
            case "B0":
                return 3.0;
            case "C+":
                return 2.5;
            case "C0":
                return 2.0;
            case "D+":
                return 1.5;
            case "D0":
                return 1.0;
            case "F":
                return 0.0;
            default:
                return -1.0;
        }
    }
}

 

'coding study > baekjoon' 카테고리의 다른 글

[java] 10757. 큰 수  (0) 2023.08.18
[java] 2745. 진법 변환  (0) 2023.08.18
[java] 1874. 스택 수열  (0) 2023.08.16
[java] 4949. 균형잡힌 세상  (0) 2023.08.15
[java] 9012. 괄호  (0) 2023.08.15
Comments