반응형
문제
인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다!
치훈이의 전공평점을 계산해주는 프로그램을 작성해보자.
전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다.
인하대학교 컴퓨터공학과의 등급에 따른 과목평점은 다음 표와 같다.
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 |
P/F 과목의 경우 등급이 P또는 F로 표시되는데, 등급이 P인 과목은 계산에서 제외해야 한다.
과연 치훈이는 무사히 졸업할 수 있을까?
문제풀이
tmp=[input().split() for _ in range(20)]
#01
score={"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}
cnt=0
ans=0
for i in tmp:
#02
if i[2]!="P":
i[1]=float(i[1])
ans+=score[i[2]]*i[1]
cnt+=i[1]
#03
print("{:.6f}".format(ans/cnt))
- #01 : 딕셔너리를 이용하여서 각 등급마다 평점을 연결해준다.
학점의 합 cnt를 0으로, 학점*평점의 합 ans를 0으로 지정해준다.
- #02 : P가 아니면 ans에는 학점*평점을 더해주고, cnt는 학점을 더해준다.
- #03 : 소수점 6자리까지 ans/cnt를 출력해준다.
'프로그래밍 > 백준' 카테고리의 다른 글
[알고리즘] 백준 5635 파이썬 - 생일 (2) | 2023.04.07 |
---|---|
[알고리즘] 백준 5671 파이썬 - 호텔 방 번호 (1) | 2023.04.06 |
[알고리즘] 백준 25644 파이썬 - 최대 상승 (2) | 2023.04.04 |
[알고리즘] 백준 2670 파이썬 - 연속부분최대곱 (2) | 2023.04.03 |
[알고리즘] 백준 1822 파이썬 - 차집합 (2) | 2023.04.02 |