Blue___
코딩배우는 학생🌎
Blue___
전체 방문자
오늘
어제
  • 코딩배우는 학생🧀 (242)
    • Algorithms (145)
      • BOJ[Java] (107)
      • Programmers[Java] (32)
      • Coding_Contest (3)
    • Web (22)
      • .NET Core C# (2)
      • Java (1)
      • Oracle SQL (7)
      • Web-ProJect (3)
      • Error처리 (1)
      • Web지식 (4)
      • Javascript (1)
      • Vue (3)
    • Git (4)
    • Java_beginner(Repl.it) (55)
      • Auto-Graded-Course(AP CS A) (54)
    • 프로젝트 직딩일기 (3)
    • Hanyang_Assignment (0)
    • 이모저모 (4)
      • 잡담 (1)
      • 2021 오픈소스 컨트리뷰터 아카데미 (1)
      • DDD - 6기! (1)
    • 북리뷰 (1)
      • 리팩토링 2판 (1)
      • 클린코드 (0)

블로그 메뉴

  • 🐰GITHUB
  • ☘️포트폴리오
  • 🌸MBC개발_투표 2022
  • 🍭MBC_APP

공지사항

인기 글

태그

  • 코딩배우는학생
  • REPL
  • 코딩배우는 학생
  • Java
  • 백준
  • algorithm
  • programmers
  • repl.it
  • 프로그래머스
  • coding
  • Java tutorial
  • java basic
  • AP CS A
  • 프로그래밍
  • 자바
  • 코딩
  • 레플릿
  • auto-graded course
  • 알고리즘
  • Bakjoon

최근 댓글

최근 글

티스토리

hELLO
Blue___

코딩배우는 학생🌎

[백준/10984번] 내 학점을 구해줘 [Java]
Algorithms/BOJ[Java]

[백준/10984번] 내 학점을 구해줘 [Java]

2019. 12. 5. 20:15

문제

게으른 근우는 열심히 놀다가 문득, 자신의 학점 평균이 얼마일지 궁금해졌다. 학사시스템도 들어가기 귀찮아하는 근우를 위해 구해주도록 하자.

입력

첫 번째 줄에 학기의 수 T가 주어진다. 두 번째 줄부터 T개 학기에 대한 정보가 주어진다.

각 학기에 대한 정보는 다음과 같이 구성되어 있다. 첫 번째 줄에 들었던 과목의 수 N이 주어지고, 다음 N개 줄에 걸쳐서 N개 과목들의 학점 C와 성적 G가 주어진다. (1 ≤ N ≤ 10, 1 ≤ C ≤ 6의 정수) 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까지 허용한다.

 


풀이

 

 배열을 통해서 풀어보았다. 처음에는 출력에 "정답과의 절대 오차는 10-1까지 허용한다."라는 말을 크게 신경안쓰고 그냥 예제 출력대로 소수점 첫째자리 수까지 표현하면 되겠지...라고 생각했는데 그게 아니다. Math.round() 함수를 통한 반올림을 해야 정답처리로 인정되는 문제이니 주의하길 바란다.(필자는 왜 틀렸는지 몰라서 한참 고민하다가 나중에 출력 문구에 눈을 돌려 확인하고 통과되었다)

 

 배열을 통해서 과목당 학점, GPA(평점)을 입력받고 저장해준다. 그런다음 sum에는 학점의 합을, answer에는 학점*GPA를 해준다음에 출력에서 출력형식에 맞게 출력을 해주면 끝나는 문제이다.

※주의할것은 Math.round(answer*10/sum)/10.0)을 해줘서 반올림 소수점 첫째자리까지 표현해 주도록한다.

(System.out.printf("%.f",answer/sum)은 반올림이 아니라 버림이므로 바로 오류가 나니까 주의!)

 

 

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
import java.util.*;
 
class Main {
  public static void main(String[] args) throws Exception {
      Scanner sc=new Scanner(System.in);
      int N=sc.nextInt();      
      int sum=0;
      double answer=0;
      outline:for(int i=0;i<N;i++) {
          int subject_num=sc.nextInt();
          int [] point=new int [subject_num];
          double [] GPA= new double [subject_num];
                  for(int j=0;j<subject_num;j++) {
                      point[j]=sc.nextInt();
                      GPA[j]=sc.nextDouble();
          }
          for(int k=0;k<subject_num;k++) {
              sum+=point[k];
          }
          for(int u=0;u<subject_num;u++) {
             answer+=(double)point[u]*GPA[u];
      }
          System.out.println(sum+ " " + Math.round(answer*10/sum)/10.0);
          sum=0;answer=0;
  }
      }
}
    
 
 

 

 

https://www.acmicpc.net/problem/10984

 

10984번: 내 학점을 구해줘

게으른 근우는 열심히 놀다가 문득, 자신의 학점 평균이 얼마일지 궁금해졌다. 학사시스템도 들어가기 귀찮아하는 근우를 위해 구해주도록 하자. 

www.acmicpc.net

 

반응형
저작자표시 (새창열림)

'Algorithms > BOJ[Java]' 카테고리의 다른 글

[백준/2609번] 최대공약수와 최소공배수 [Java]  (0) 2019.12.05
[백준/2747번] 피보나치 수 [Java]  (0) 2019.12.05
[백준/1550번] 16진수 [ Java]  (0) 2019.12.04
[백준/11050번] 이항 계수 1 [Java]  (0) 2019.12.03
[백준/10988번] 팰린드롬인지 확인하기 [Java]  (0) 2019.12.03
    'Algorithms/BOJ[Java]' 카테고리의 다른 글
    • [백준/2609번] 최대공약수와 최소공배수 [Java]
    • [백준/2747번] 피보나치 수 [Java]
    • [백준/1550번] 16진수 [ Java]
    • [백준/11050번] 이항 계수 1 [Java]
    Blue___
    Blue___
    완전 연소한 불은 재를 남기지않는다 : 코딩배우는학생 🌎

    티스토리툴바