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
반응형
'Computer Science (CS) > 알고리즘' 카테고리의 다른 글
[백준/Java] 2566번 최댓값 (0) | 2023.05.14 |
---|---|
[백준/Java] 2738번 행렬 덧셈 (0) | 2023.05.13 |
[백준/Java] 1316번 그룹 단어 체커 (0) | 2023.05.11 |
[백준/Java] 2941번 크로아티아 알파벳 (0) | 2023.05.11 |
[백준/Java] 4344번 평균은 넘겠지 (0) | 2023.05.11 |