728x90
문제
게으른 근우는 열심히 놀다가 문득, 자신의 학점 평균이 얼마일지 궁금해졌다. 학사시스템도 들어가기 귀찮아하는 근우를 위해 구해주도록 하자.
입력
첫 번째 줄에 학기의 수 T가 주어진다. 두 번째 줄부터 T개 학기에 대한 정보가 주어진다.
각 학기에 대한 정보는 다음과 같이 구성되어 있다. 첫 번째 줄에 들었던 과목의 수 N이 주어지고, 다음 N개 줄에 걸쳐서 N개 과목들의 학점 C와 성적 G가 주어진다. (1 ≤ N ≤ 10, 1 ≤ C ≤ 6, C는 정수) G는 {0, 0.7, 1, 1.3, 1.7, 2, 2.3, 2.7, 3, 3.3, 3.7, 4, 4.3} 중 하나이며 소수 부분은 최대 한 자리까지 주어진다.
출력
각 학기에 대해 근우의 총 학점과 평점(GPA)을 출력한다. 정답과의 절대 오차는 10-1까지 허용한다.
풀이
1. 총 학점을 구하는 방법 : N개에 걸쳐서 입력되는 C들의 합
2. GPA를 구하는 방법 : N개에 걸쳐서 입력되는 C와 G를 곱 -> 곱해진 값이 I번 과목에 대한 평점이며, 이 값들을 더해서 총 학점으로 나누면 전체 평점(GPA)이 됨
-> 문제에서 소수 부분은 최대 한 자리이기에 round함수를 이용하여 반올림하여 계산
코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for(int t=0;t<T;t++) {
int n=Integer.parseInt(br.readLine());
int sum=0, temp;
double gpa=0;
for(int i=0;i<n;i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
temp=Integer.parseInt(st.nextToken());
sum+=temp;
gpa+=Double.parseDouble(st.nextToken())*temp;
}
System.out.println(sum+" "+Math.round(gpa/sum*10)/10.0);
}
}
}
728x90
728x90
'Algorithm > Baekjoon' 카테고리의 다른 글
Baekjoon 2153 소수 단어 JAVA (0) | 2022.06.21 |
---|---|
Baekjoon 11098 첼시를 도와줘! JAVA (0) | 2022.06.21 |
Baekjoon 13706 제곱근 JAVA (0) | 2022.06.21 |
Baekjoon 1821 수들의 합 6 JAVA (0) | 2022.06.21 |
Baekjoon 16173 점프왕 쩰리 (Small) JAVA (0) | 2022.06.18 |
댓글