ALGORITHM/PYTHON

백준 BAEKJOON 25206번 너의 평점은 [PYTHON/파이썬]

칼코
반응형

백준 BAEKJOON 25206번 너의 평점은 [PYTHON/파이썬]


<문제 출처>

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

 

25206번: 너의 평점은

인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치

www.acmicpc.net

<풀이>

문제에서 주어진 조건을 잘 고려하면 쉽게 풀 수 있다.

(등급이 P인 과목은 계산에서 제외해야 한다.)

 

먼저 등급과 등급에 해당하는 과목평점을 리스트로 만들어줬다.

딕셔너리로 구현하면 깔끔하게 코딩을 짤 수 있는데 나는 그냥 리스트 2개를 만들었다.

 

20줄에 걸쳐 과목명, 학점, 등급을 입력 받고

if 문을 사용하여 등급이 P이면 계산을 넘어가게끔 구현했다.

(학점 * 과목평점)의 합을 학점의 총합으로 나눠야하기 때문에

total 변수에는 학점을 더했고

result 변수에는 (학점 * 과목평점) 값을 더했다.

 

마지막에는 소수점 6자리로 표현하기 위해 %.6f 를 사용하여 출력하였다.

 

<코드>

rating = ['A+', 'A0', 'B+', 'B0', 'C+', 'C0', 'D+', 'D0', 'F']
grade = [4.5, 4.0, 3.5, 3.0, 2.5, 2.0, 1.5, 1.0, 0]

total = 0	# 학점 총합을 담을 변수
result = 0	# (학점 * 과목평점) 총합을 담을 변수
for _ in range(20) :
    s, p, g = input().split()
    p = float(p)
    if g != 'P' :	# 등급이 P인 과목은 계산 안함
        total += p
        result += p * grade[rating.index(g)]

print('%.6f' % (result / total))
반응형