반응형
1. Scanner를 이용한 방법
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String[] gradeList = {"A+", "A0", "B+", "B0","C+", "C0", "D+", "D0", "F"};
Double[] scoreList = {4.5, 4.0, 3.5, 3.0, 2.5, 2.0, 1.5, 1.0, 0.0};
Double sum = 0.0;
Double gradeSum = 0.0;
for(int i=0; i<20; i++){
String subject = sc.next();
Double score = sc.nextDouble();
String grade = sc.next();
for(int j=0; j<gradeList.length; j++){
if(gradeList[j].equals(grade)){
sum += score * scoreList[j];
gradeSum += score;
}
}
}
System.out.println((float)(sum/gradeSum));
}
}
2.BufferedReader를 이용한 방법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] gradeList = {"A+", "A0", "B+", "B0","C+", "C0", "D+", "D0", "F"};
Double[] scoreList = {4.5, 4.0, 3.5, 3.0, 2.5, 2.0, 1.5, 1.0, 0.0};
Double sum = 0.0;
Double gradeSum = 0.0;
for(int i=0; i<20; i++){
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
String subject = st.nextToken();
Double score = Double.parseDouble(st.nextToken());
String grade = st.nextToken();
for(int j=0; j<gradeList.length; j++){
if(gradeList[j].equals(grade)){
sum += score * scoreList[j];
gradeSum += score;
}
}
}
System.out.println(sum/gradeSum);
}
}
P인 등급을 어떻게 배제해야하나 고민했는데 생각해보니 과목평점 목록에는 P가 없어서 equals()를 이용해서 풀면 되는 거였다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2566 - 최댓값 (JAVA/ 자바) (0) | 2024.03.17 |
---|---|
[백준] 2738 - 행렬 덧셈 (JAVA/ 자바) (0) | 2024.03.16 |
[백준] 1316 - 그룹 단어 체커 (JAVA/ 자바) (0) | 2024.03.13 |
[백준]2941 - 크로아티아 알파벳 (JAVA/ 자바) (0) | 2024.03.08 |
[백준] 1157 - 단어 공부 (JAVA/ 자바) (0) | 2024.03.07 |