반응형
접근 방법)
split을 이용하면 금방 풀 수 있는 문제였다.
우선 주어진 문자열을 띄어쓰기를 기준으로 문자열을 자르고 앞 과목 이름은 사용하지 않고 학점과 점수를 가지고 문제를 풀어나가면 된다.
그리고 또 점수가 P인 과목일 경우는 점수 계산에서 제외해야 한다는 점도 기억하고 있어야 한다.
정답 코드 1)
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
double score = 0; // 학점 X 과목 점수
double count = 0; // 총 학점
for(int i = 1; i <= 20; i++){
String str = sc.nextLine();
String[] s = str.split(" ");
double a = Double.parseDouble(s[1]); // 학점 (String 형을 double 형으로 변환)
double b = 0; // 점수
if(s[2].equals("A+")){
b = 4.5;
}else if(s[2].equals("A0")){
b = 4.0;
}else if(s[2].equals("B+")){
b = 3.5;
}else if(s[2].equals("B0")){
b = 3.0;
}else if(s[2].equals("C+")){
b = 2.5;
}else if(s[2].equals("C0")){
b = 2.0;
}else if(s[2].equals("D+")){
b = 1.5;
}else if(s[2].equals("D0")){
b = 1.0;
}else if(s[2].equals("F")){
b = 0.0;
}else if(s[2].equals("P")){
count = count - a;
}
score = score + (a*b);
count = count + a;
}
System.out.println(score/count);
}
}
for문을 이용하여 총 20번 String 문자열을 입력받고 split을 이용하여 띄어쓰기를 기준으로 문자열을 나눠 String [] 배열에 넣는다.
배열[0]은 과목이름, 배열[1]은 학점, 배열[2]는 점수가 된다.
그리고 배열 [2]를 if문을 통해 문자 비교한 후 문자에 해당하는 점수(double형)를 변수 b에 할당한다.
마지막으로 점수가 P일 경우는 b 초기값이 0이기 때문에 아무 점수가 포함되지 않을뿐더러 count - a를 하여 총 학점에도 포함되지 않도록 작성한다.
반응형
'Baekjoon 자바 코드 > 심화1' 카테고리의 다른 글
[백준] 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰 코드 (Java 자바) (0) | 2024.10.15 |
---|---|
[백준] 25083번 새싹 코드 (Java 자바) (0) | 2024.10.07 |
[백준] 1316번 그룹 단어 체커 풀이 코드 (Java 자바) (0) | 2024.05.08 |
[백준] 2941번 크로아티아 알파벳 풀이 코드 (Java 자바) (0) | 2024.05.02 |
[백준] 1157번 단어 공부 풀이 코드 (Java 자바) (0) | 2024.04.30 |