문제
https://www.acmicpc.net/problem/25206
전공평점(과목별 (학점 × 평점)의 합을 학점의 총합으로 나눈 값)을 구하는 문제였다.
문제 풀이
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//(학점 × 과목평점)의 합
double result=0;
//학점의 총합
double result2=0;
for(int i=0; i<20; i++) {
StringTokenizer t=new StringTokenizer(br.readLine()," ");
String name=t.nextToken();
double score=Double.parseDouble(t.nextToken());
String grade=t.nextToken();
double rate=0;
if(!grade.equals("P")) {
if(grade.equals("A+")) {
rate=4.5;
} else if(grade.equals("A0")) {
rate=4.0;
} else if(grade.equals("B+")) {
rate=3.5;
} else if(grade.equals("B0")) {
rate=3.0;
} else if(grade.equals("C+")) {
rate=2.5;
} else if(grade.equals("C0")) {
rate=2.0;
} else if(grade.equals("D+")) {
rate=1.5;
} else if(grade.equals("D0")) {
rate=1.0;
} else if(grade.equals("F")) {
rate=0;
}
result+=score*rate;
result2+=score;
}
}
System.out.printf("%6f",result/result2);
}
}
간단한 문제지만 등급이 P일 때를 고려해 계산에서 제외해야 하는 것과 rate 변수를 반복문 밖이 아닌 안에서 초기화하는 게 중요한 문제였다.
'코딩테스트 > 백준' 카테고리의 다른 글
[백준/JAVA]2566번 최댓값 (0) | 2025.01.23 |
---|---|
[백준/JAVA]2738번 행렬 덧셈 (0) | 2025.01.23 |
[백준/JAVA]1316번 그룹 단어 체커 (0) | 2025.01.22 |
[백준/JAVA]2941번 크로아티아 알파벳 (0) | 2025.01.22 |
[백준/JAVA]1157번 단어 공부 (0) | 2025.01.21 |