import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
Map<String, Double> gradeMap = new HashMap<>();
gradeMap.put("A+", 4.5);
gradeMap.put("A0", 4.0);
gradeMap.put("B+", 3.5);
gradeMap.put("B0", 3.0);
gradeMap.put("C+", 2.5);
gradeMap.put("C0", 2.0);
gradeMap.put("D+", 1.5);
gradeMap.put("D0", 1.0);
gradeMap.put("F", 0.0);
double totalCredit = 0; // 학점만
double totalScore = 0; // 총합
for (int i = 0; i < 20; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
st.nextToken(); // 첫 번째 토큰 (과목명) 무시
double credit = Double.parseDouble(st.nextToken());
String grade = st.nextToken();
if (!grade.equals("P")) { // "P" 과목 외만 계산
totalCredit += credit;
totalScore += credit * gradeMap.get(grade);
}
}
bw.write(String.valueOf((totalCredit == 0) ? 0.0 : totalScore / totalCredit));
br.close();
bw.flush();
bw.close();
}
}
'코딩 테스트 > JAVA - 백준 단계별로 풀어보기' 카테고리의 다른 글
[백준 Java] 2차원 배열 - 2566번: 최댓값 (1) | 2025.02.14 |
---|---|
[백준 Java] 2차원 배열 - 2738번: 행렬 덧셈 (1) | 2025.02.14 |
[백준 Java] 심화 1 - 1316번: 그룹 단어 체커 (1) | 2025.02.13 |
[백준 Java] 심화 1 - 2941번: 크로아티아 알파벳 (0) | 2025.02.13 |
[백준 Java] 심화 1 - 1157번: 단어 공부 (0) | 2025.02.13 |