본문 바로가기
프로그래밍/백준 알고리즘 코드

[백준] 25206번 JAVA - 너의 평점은 - 심화1 (switch case, split()으로..)

by 졸린이 2024. 1. 8.
반응형

 

너의 평점은 문제.

분명 대학교 졸업을 했는데 평점 구하는 법을 까먹었다.

아니 분명 계산을 어떻게 했었는데 어떻게 했더라... 검색해서 알아냈다.

어떤 과목에 대해 그 학점과 점수를 곱하고 전체 과목을 더한다.

그리고 내가 수강한 총 학점으로 나누면 내 평점이 된다.

 

- 학점 * 점수 + 학점 * 점수 / 학점 + 학점

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.util.Scanner;
import java.util.StringTokenizer;
 
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        double gradeSum = 0//학점 합
        double scoreSum = 0//점수 합
        
        for(int i=0; i<20; i++) {
            String str = sc.nextLine();
            
            String[] splitStr = str.split(" ");
            
            char score = splitStr[2].charAt(0);
            
            double tmp;
            switch (score) {
                case 'A':
                    tmp = 4;
                    break;
                case 'B':
                    tmp = 3;
                    break;
                case 'C':
                    tmp = 2;
                    break;
                case 'D':
                    tmp = 1;
                    break;
                case 'F':
                    tmp = 0;
                    break;
                default:
                    continue;    
            }
            gradeSum += Double.parseDouble(splitStr[1]);
            if(splitStr[2].length() == 2) {
                if(splitStr[2].charAt(1== '+') {
                    tmp += 0.5;
                }
            }
            scoreSum += Double.parseDouble(splitStr[1]) * tmp;
        }
        System.out.println(scoreSum/gradeSum);
    }
}
cs

풀이도 여러 방법이 있을 것 같다.

8, 9 :  학점과 내 성적의 합을 더할 변수를 선언한다.

14 : 입력을 한 줄로 받으니 한 string으로 입력받고 공백을 기준으로 split으로 자른다.

16 : 점수는 마지막에 입력받으니 splitStr[2]에 있고 switch case 문에서 A+, A, B+, B... 이런식으로 전부 펼쳐서 비교해도 되지만 줄을 줄이고 싶어서 charAt(0)으로 우선 앞글자만 따서 점수를 입력했다.

35 : P는 default로 들어가서 continue

38 : gradeSum에 내가 수강한 학점을 다 더한다.

39 ~ 40 : 점수가 두글자면 (ex : A+, B0) 두 번째 있는 문자가 +인지 확인하고 0.5점을 더한다.

44 : 학점에 점수를 곱하고 scoreSum에 더한다.

46 : 이제 점수합/학점합 으로 평점을 출력

반응형

댓글