728x90
반응형
https://www.acmicpc.net/problem/25206
25206번: 너의 평점은
인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치
www.acmicpc.net
문제 해결 아이디어
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 예외처리 구문
파이썬 입력이 끝날 때까지 받아오는 방법 [BOJ 10951] A+B - 4 (파이썬 python EOF EOFError)
파이썬 python EOF [BOJ 10951] BOJ 10951번: A+B - 4 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 파이썬을 사용하여 입력이 끝날 때까지 받아오는 방법
pchild.tistory.com
반응형
'코딩테스트' 카테고리의 다른 글
[백준] 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 |