[Baekjoon] 25206번: 너의 평점은
2023. 3. 13. 17:03ㆍComputer Sciences/Problem Solve
https://www.acmicpc.net/problem/25206
문제 설명
20줄의 수강 정보가 주어진다. ( 과목별 학점 x 등급의 총합 ) / 학점 총합 한 결과를 출력하면 된다. 단, 패스 과목은 제외한다.
풀이 방법
보통 소수점 출력 시 Math.round()와 String.format() 둘 중 하나의 방법을 사용하는데 이 문제의 경우 소수점까지 출력해야 하기 때문에 String.format()을 사용해야 한다.
package baekjoon.math;
import java.io.*;
public class BOJ25206 {
final static int COUNT_ENROLLED_CLASS = 20;
final static float[] GRADE = {4.5f, 4.0f, 3.5f, 3.0f, 2.5f, 2.0f, 1.5f, 1.0f, 0.0f};
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
float total = 0;
float sum = 0;
for (int i = 0; i < COUNT_ENROLLED_CLASS; i++) {
String[] infos = br.readLine().split(" ");
float credit = Float.parseFloat(infos[1]);
switch (infos[2]) {
case "A+":
sum += credit * GRADE[0];
break;
case "A0":
sum += credit * GRADE[1];
break;
case "B+":
sum += credit * GRADE[2];
break;
case "B0":
sum += credit * GRADE[3];
break;
case "C+":
sum += credit * GRADE[4];
break;
case "C0":
sum += credit * GRADE[5];
break;
case "D+":
sum += credit * GRADE[6];
break;
case "D0":
sum += credit * GRADE[7];
break;
case "F":
sum += credit * GRADE[8];
break;
case "P":
total -= credit; // 총합에서 패스 과목은 빼야하기 때문에 제거
default:
break;
}
total += credit;
}
System.out.print(String.format("%.6f", sum / total));
}
}
'Computer Sciences > Problem Solve' 카테고리의 다른 글
[Baekjoon] 11650번: 좌표 정렬하기 (0) | 2023.03.15 |
---|---|
[Baekjoon] 2563번: 색종이 (0) | 2023.03.14 |
[Baekjoon] 10988번: 팰린드롬인지 확인하기 (0) | 2023.03.13 |
[Baekjoon] 1213번: 팰린드롬 만들기 (0) | 2023.03.12 |
[Baekjoon] 14889번: 스타트와 링크 (0) | 2023.03.10 |