반응형
https://www.acmicpc.net/problem/25206
문제 해결 아이디어
1. 학점 중 P학점은 평점에 포함되지 않는다. (예외처리 필요!!)
2. 입력은 20번 들어온다. 하지만 더 많은 입력값이 들어올 것을 대비하여 예외문을 삽입 (try, except)
3. 누적 값을 저장할 변수를 미리 선언해준다.
4. 각 평점에 대응하는 딕셔너리를 미리 선언하였음.
5. 결과값 출력은 소수점 6번째 자리까지 반올림 하였음. (내 맘)
소스코드 (Python)
def cal():
total_cre = 0
total_grd = 0
grade = {
'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
}
while True:
try:
obj, cre, grd = [iter for iter in input().split()]
cre = float(cre)
if grd == 'P': pass
else:
total_cre += cre
total_grd += cre * grade[grd]
except EOFError:
break
return round(total_grd/total_cre, 6)
if __name__ == '__main__':
print(cal())
결과
굿굿
참고
EOFError 예외처리 구문
반응형
'코딩테스트' 카테고리의 다른 글
[백준] 2566번: 최댓값 (브론즈3, Python) (0) | 2023.08.02 |
---|---|
[백준] 2444번: 별 찍기 - 7 (브론즈3, Python, for문 한번 사용) (0) | 2023.08.01 |
[프로그래머스] 멀리 뛰기 (lv1, Python) (0) | 2023.07.27 |
[백준] 5597번: 과제 안 내신 분..? (브론즈5, Python) (0) | 2023.07.27 |
[백준] 10813번: 공 바꾸기 (브론즈2, Python) (0) | 2023.07.27 |