풀이
- 우선 과목 평점에 대한 값을 딕셔너리 타입으로 정리한 뒤
- subject에 입력값을 받은 다음 하나씩 조회를 했는데
- 문제에서 P의 경우에는 점수를 반영하지 않는다고 했기에 continue를 사용
- 이외에는 우선 hap1에는 전공과목별의 누적합을 계산하고
- hap2에는 학점의 합을 누적합을 계산하여
- 최종적으로 나눈 값을 round로 6자리까지 보여주도록하며 반올림하도록 하여 해결
- 다만 여기서 0을 나눈 값에 대한 에러 또는 0.0으로 표기되는 것에 대한 조건을
- 하나 더 추가하여 문제를 해결.
import sys
input = sys.stdin.readline
hap1,hap2 = 0.0,0.0
_dic = {'A+': 4.5, 'A0': 4.0, 'B+': 3.5, 'B0': 3.0, 'C+': 2.5, 'C0': 2.0, 'D+': 1.5, 'D0': 1.0, 'F': 0.0}
for i in range(20):
subject = list(input().rstrip('\n').split())
if subject[-1] == 'P': continue
hap1 += float(subject[1])*_dic[subject[-1]]
hap2 += float(subject[1])
if hap1 == 0.0 or hap2 == 0.0: print('0.000000')
else: print(round(hap1/hap2,6))
'알고리즘' 카테고리의 다른 글
[백준, 자바, 1173번] 운동 (0) | 2023.12.13 |
---|---|
[백준, 파이썬, 1173번] 운동 (0) | 2023.12.13 |
[백준, 파이썬, 10988번] 팰린드롬인지 확인하기 (0) | 2023.10.11 |
[백준, 파이썬, 1075번] 나누기 (0) | 2023.10.09 |
[백준, 파이썬, 3273번] 두 수의 합 (2) | 2023.10.07 |