백준 25206번

rank_list = ['A+', 'A0', 'B+', 'B0', 'C+', 'C0', 'D+', 'D0']
major_rating = 0
total_score = 0
sum = 0
for _ in range(20):
subject, score, rank = input().split()
score = float(score)
if rank != 'P':
if rank in rank_list:
rank = 4.5 - rank_list.index(rank)*0.5
elif rank == 'F':
rank = 0
total_score += score * rank
sum += score
major_rating = total_score / sum
print(round(major_rating, 6))
코드 설명
- 과목 등급 리스트와 전공평점, 학점x과목평점, 학점의 총합의 변수 설정
- 수강한 과목이 20개이기 때문에 반복문 20번으로 입력을 받음
- 학점을 문자열에서 실수형으로 변경
- P는 계산에서 제외해야 하기 때문에 P가 아닌 경우만 판단
- 등급을 F가 아닐 경우 과목평점으로 변경 F일 경우 0
- 20과목에 대한 학점x과목평점과 학점의 총합을 구함
- 전공평점을 계산 후 소수점 6자리까지 출력