반응형
너의 평점은 문제.
분명 대학교 졸업을 했는데 평점 구하는 법을 까먹었다.
아니 분명 계산을 어떻게 했었는데 어떻게 했더라... 검색해서 알아냈다.
어떤 과목에 대해 그 학점과 점수를 곱하고 전체 과목을 더한다.
그리고 내가 수강한 총 학점으로 나누면 내 평점이 된다.
- 학점 * 점수 + 학점 * 점수 / 학점 + 학점
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 : 이제 점수합/학점합 으로 평점을 출력
반응형
'프로그래밍 > 백준 알고리즘 코드' 카테고리의 다른 글
[백준] 2566번 JAVA 최댓값 - 2차원 배열 (0) | 2024.01.15 |
---|---|
[백준] 2738번 JAVA 행렬 덧셈 - 2차원 배열 (0) | 2024.01.15 |
[백준] 10988번 JAVA - 팰린드롬인지 확인하기 (심화1) (0) | 2023.08.03 |
[백준] 2444번 JAVA - 별 찍기 - 7 (심화1) (0) | 2023.07.30 |
[백준] 11718번 JAVA - 그대로 출력하기 (문자열) (0) | 2023.07.30 |
댓글