해당 문제는 문제에 쓰여있는 공식 [전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다.]이 제일 중요한 부분 이었으며, 별 다른 특이점이나 알고리즘없이 구현문제?처럼 풀면 되는 부분이었다.
학점을 배열에 넣어서 반복문으로 조회하는 방법도 있겠지만 CASE문이 더 직관적이기에 해당 방법을 이용하였다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
double result=0;
double sum=0;
for (int i = 0; i <20; i++) {
String[] s = br.readLine().split(" ");
double d = Double.parseDouble(s[1]);
double d2 = 0;
String grade = s[2];
if(grade.equals("P")) {
continue;
}else {
switch (grade) {
case "A+": d2 = 4.5;
break;
case "A0": d2 = 4.0;
break;
case "B+": d2 = 3.5;
break;
case "B0": d2 = 3.0;
break;
case "C+": d2 = 2.5;
break;
case "C0": d2 = 2.0;
break;
case "D+": d2 = 1.5;
break;
case "D0": d2 = 1.0;
break;
case "F": d2 = 0.0;
}
sum += d;
result = result+(d*d2);
}
}
System.out.printf("%.6f", result/sum);
}
}
'CodingTest' 카테고리의 다른 글
코딩테스트 기본 유형 정리 (1) | 2024.01.01 |
---|---|
백준_11866번_요세푸스 문제 0_자바 (0) | 2023.12.18 |
백준_2468번_안전영역_자바 (0) | 2023.12.13 |
백준_2667번_단지번호붙이기(자바) (0) | 2023.12.10 |
백준_10451번_순열 사이클(자바) (0) | 2023.12.08 |