-
[백준/BOJ] 10984번 : 내 학점을 구해줘 (JAVA / 자바)백준 2022. 2. 16. 23:29
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/10984
- 문제 -
난이도 브론즈 3 문제이다.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야한다.
더 자세한 내용은 아래 글 참고 하면 좋다.
풀이 방법
봐야 할 것은 학점 평균 구하는 법이다. 여기서 주의할건 성적 평균이 아니라 학점 평균이다.
출력은 총 학점과 학점 평균이다.
총 학점은 입력되는 모든 학점을 더해주면된다.
학점 평균은 과목마다 (학점 * 점수) 해주고, 다 더해준다. 거기에 나누기 총 학점을 해주면 학점 평균이 나온다. 소수점 아래 한자리까지 표현하라고 했으니 2번째 자리에서 반올림도 해주자.
코드로 보자.
-풀이-
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)); int T = Integer.parseInt(br.readLine()); for(int i = 0; i < T; i++) { int N = Integer.parseInt(br.readLine()); //총학점 저장 할 변수 int Csum = 0; //학점 평균을 구하기위한 변수 소수이기때문에 double형으로 선언 double Gave = 0; for(int j = 0; j < N; j++) { StringTokenizer st = new StringTokenizer(br.readLine()); int C = Integer.parseInt(st.nextToken()); double G = Double.parseDouble(st.nextToken()); Csum += C; Gave += (G * C); } //총합과 학점 평균을 출력(학점 평균은 모든 과목의 (학점 * 점수)를 구한 Gave에 총 학점인 Csum을 나눠준다. System.out.println(Csum + " " + String.format("%.1f", (Gave / Csum))); } } }
-결과-
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수분들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠습니다.
'백준' 카테고리의 다른 글
[백준/BOJ] 1264번 : 모음의 개수 (JAVA / 자바) (0) 2022.02.17 [백준/BOJ] 11006번 : 남욱이의 닭장 (JAVA / 자바) (0) 2022.02.16 [백준/BOJ] 1037번 : 약수 (JAVA / 자바) (0) 2022.02.16 [백준/BOJ] 1296번 : 팀 이름 정하기 (JAVA / 자바) (0) 2022.02.16 [백준/BOJ] 1259번 : 팬린드롬수 (JAVA / 자바) (0) 2022.02.15