백준 25206번 바로가기
나의 풀이#
import sys
rule={'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}
score = 0.0
n = 0.0
for sbj in sys.stdin:
sbj = sbj.split()
if sbj[2] == 'P':
pass
else:
score += rule[sbj[2]] * float(sbj[1])
n += float(sbj[1])
print(score/n)
CODE REVIEW#
- 문제 조건에서 20줄에 걸쳐 성적이 제공된다고 했는데, 일반적인 n줄의 성적에도 적용할 수 있도록 범용성을 높이기 위해
for sbj in sys.stdin:
으로 계속해서 input을 받아주었다.
- 나의 경우
rule
이라는 학점에 대한 정보를 dict에 담았는데, 다른 코드들을 살펴보니 g=['P','F','D0','D+','C0','C+','B0','B+','A0','A+']
이런 리스트를 만들고 g.index(grade) * 0.5
하는 식으로 학점을 구했다. 그런데 사실 이건 list보다 dict이 깔끔하지 않나 생각된다.