본문 바로가기
코딩테스트 문제풀이(Python)

백준 10984번 풀이

by chanfficial 2022. 4. 14.

10984. 내 학점을 구해줘

 

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

 

 

입력 : 첫 번째 줄에 학기의 수 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까지 허용한다.

 

- 평점 구하는 방법 : (학점 * 성적) / 전체학점

 

ex)

입력 :

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

- 평점 : {(3*4.3) + (2*2.0) + (4*0.0) + (2.4.0)} / (3 + 2 + 4 + 2) = 2.26......(소수점 첫 번째 자리에서 반올림)

 

출력 :

11 2.3
11 0.0

 

 

 

풀이

t = int(input())

for i in range(t):
    n = int(input())
    hSum = 0
    gpa = 0
    for i in range(n):
        c, g = map(str, input().split())
        hSum += int(c)
        gpa += float(c)*float(g)

    print(hSum, round(gpa/hSum, 1))

- 먼저 입력받은 학기의 수(t) 만큼 반복하며 각 학기에 들었던 과목의 수(n)을 입력 받았다. 학점의 총 합을 의미하는 변수 hSum과 평점을 의미하는 변수 gpa를 0으로 초기화 시킨 다음 n개 과목의 학점과 성적을 입력받기 위해 n번 만큼 반복하는 for문을 작성했다.

n번 만큼 반복하며 n개 과목에서 각각의 학점 c와 성적 g를 입력받은 다음, 학점의 총 합(hSum)을 계산하게 했고 평점을 전체 학점으로 나누기 전까지의 과정을 계산하게 했다. (ex : 과목이 2개라면 각각의 학점(c)*성적(g)를 더하는 과정)

모든 계산을 끝낸 후 총 학점(hSum)과 학점*성적을 각각 더한 값을 총 학점으로 나눈 평점(gpa)를 출력하게 했다.

여기서 round()는 반올림을 해주는 함수로, 소수점 첫 번째 자리에서 반올림 하도록 지정해줬다.

'코딩테스트 문제풀이(Python)' 카테고리의 다른 글

백준 10833번 문제풀이  (0) 2022.04.15
백준 10952번 문제풀이  (0) 2022.04.14
백준 10950번 문제풀이  (0) 2022.04.12
백준 5565번 문제풀이  (0) 2022.04.09
백준 2441번 문제풀이  (0) 2022.04.09