Computer Science (CS)/알고리즘
[백준/Java] 25206번 너의 평점은
eune7
2023. 5. 13. 15:01
728x90
반응형
문제
정답 풀이
import java.io.*;
import java.util.StringTokenizer;
// 전공 평점 = (SUM(학점X과목평점)) / SUM(학점)
// 과목 평점 = 등급에 따라, P는 제외
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
double sumNumxScore = 0;
double sumNum = 0;
for(int i = 0; i < 20; i++){
st = new StringTokenizer(br.readLine());
String object = st.nextToken();
double num = Double.parseDouble(st.nextToken());
String alphabet = st.nextToken();
double score = 0;
// P가 아닐 때만 체크
if(!(alphabet.equals("P"))){
// 과목 평점 계산
switch (alphabet) {
case "A+":
score = 4.5;
break;
case "A0":
score = 4.0;
break;
case "B+":
score = 3.5;
break;
case "B0":
score = 3.0;
break;
case "C+":
score = 2.5;
break;
case "C0":
score = 2.0;
break;
case "D+":
score = 1.5;
break;
case "D0":
score = 1.0;
break;
case "F":
score = 0.0;
break;
default:
break;
}
sumNumxScore += (num*score);
sumNum += num;
}
}
// 소수점 아래 6자리까지 출력
System.out.printf("%.6f", sumNumxScore/sumNum);
br.close();
}
}
- 메모리 14656KB
- 시간 136ms
어려운 문제를 풀다가 이 문제를 푸니 마음이 편해지네요ㅎㅎ
과목 점수를 보고 switch문이 바로 떠올랐어요.
하나 체크해줘야 할 점은 P는 체크해주지 않는다는 점!
실수로 받아야 하니까 double형이나 float형으로 값을 받아주시고요!
예제 출력을 보고 소수점 아래 6자리까지만 출력해줬습니다.
728x90
반응형