happy coding
[java] 25206. 너의 평점은 본문
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