본문으로 바로가기

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

category 알고리즘/백준 알고리즘 2018. 5. 17. 17:25

글에 개요


백준 알고리즘 10984번 "내 학점을 구해줘" 문제입니다.
백준 알고리즘 분류에서 '구현'에 있는 문제입니다.
이 문제는 Math.round 함수를 통한 소수점 n번째 자리에서 반올림하는 것을 익히기 위한 문제였습니다.

[백준 10984] 내 학점을 구해줘https://www.acmicpc.net/problem/10984

참고할 글
  1. http://brenden.tistory.com/40 ([백준 2577] 숫자의 개수 - 구현 문제)

  2. http://brenden.tistory.com/41 ([백준 2839] 설탕 배달 - 구현 문제)

  3. http://brenden.tistory.com/42 ([백준 10798] 세로읽기 - 구현 문제)

  4. http://brenden.tistory.com/44 ([백준 1764] 듣보잡 - 구현 문제)

  5. http://brenden.tistory.com/46 ([백준 2563] 색종이 - 구현 문제)


핵심 내용
  • Math.round() 적용한 경우
    • 소수점 첫째자리에서 반올림하여 정수로 만들어주는 함수

 

1
2
3
4
5
6
7
8
9
public class MathRoundTest {
 
    public static void main(String[] args) {
        double e = 2.71828;
        // 6line 결과로 '3'이 출력된다.
        System.out.println(Math.round(e));
    }
 
}
cs
  • Math.round() 소수점 둘째자리에서 반올림한 경우

 

1
2
3
4
5
6
7
8
9
public class MathRoundTest {
 
    public static void main(String[] args) {
        double e = 2.71828;
        // 6line 결과로 '2.7'이 출력된다.
        System.out.println(Math.round(e * 10/ 10.0);
    }
 
}
cs
  • Math.round() 소수점 n번째자리까지 남기고자 할 때의 코드(= n+1번째 자리에서 반올림한다.)

 

1
2
3
4
5
6
7
8
9
10
11
12
public class MathRoundTest {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //n번째 자리까지 소수점을 나타내고자 한다.
        int n = sc.nextInt();
        double m = Math.pow(10.0, n);
        double e = 2.71828;
        System.out.println(Math.round(e*m)/m);
    }
 
}
cs

위의 3가지 예시를 보시게되시면 쉽게 이해가 가능할 것입니다.


해결 방법
  1. 총학점의 수(gradeSum)와 학점의 총합(scoreSum)을 초기화해준다. (double형을 사용했습니다.)
  2. Math.round(scoreSum*10/gradeSum)/10.0 이 부분처럼 사용하면 소수점 한 자리까지 남게됩니다.

해결한 코드



백준 참고 내용

시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초256 MB18811170110263.736%

문제

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

입력

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

각 학기에 대한 정보는 다음과 같이 구성되어 있다. 첫 번째 줄에 들었던 과목의 수 N이 주어지고, 다음 N개 줄에 걸쳐서 N개 과목들의 학점 C와 성적 G가 주어진다. (1 ≤ N ≤ 10, 1 ≤ C ≤ 6의 정수. G는 0과 x-0.3, x, x+0.3 (x=1, 2, 3, 4) 중 하나로 주어진다.)

출력

각 학기에 대해 근우의 총 학점과 평점(GPA)을 출력한다. 평점은 소수점 아래 두 번째 자리에서 반올림한다. 

예제 입력 1 

2
4
3 4.3
2 2.0
4 0.0
2 4.0
3
4 0.0
4 0.0
3 0.0

예제 출력 1 

11 2.3
11 0.0

예제 입력 2 

2
4
3 4.3
2 2
4 0.0
2 4.0
3
4 0.0
4 0
3 0

예제 출력 2 

11 2.3
11 0.0


'알고리즘 > 백준 알고리즘' 카테고리의 다른 글

[백준 2935] 소음  (0) 2018.05.20
[백준 8979] 올림픽  (0) 2018.05.18
[백준 4673] 셀프 넘버  (0) 2018.05.10
[백준 6588] 골드바흐의 추측  (0) 2018.05.10
[백준 4948] 베르트랑 공준  (0) 2018.05.10

댓글을 달아 주세요