본문 바로가기
백준

[백준] 25206번 : 너의 평점은 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 10. 4.
728x90
반응형

 

 

25206번: 너의 평점은

인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

해당 문제는 입력받은 등급을 기준으로 P 등급이 아닌 과목의 전공평점을 구하는 문제이다.

각 등급별 과목평점을 미리 딕셔너리를 통해 저장해 두고 전공과목별 점수를 계산할 때 활용한다.

각 입력은 한 번에 입력되므로 문자열 형태로 입력받은 다음 계산할 때 알맞은 자료의 형태로 변환하여 계산한다.

 

  1. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
  2. 등급에 따른 과목평점을 딕셔너리로 저장한다. grade_dic = {'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}
  3. (학점 x 과목평점)의 합을 저장할 변수를 생성하고 초기화한다. total = 0
  4. 학점의 총합을 저장할 변수를 생성하고 초기화한다. point_total = 0
  5. 총 20번을 반복하며 for _ in range(20)
  6. 전공과목명과 학점, 등급을 문자열 형태로 입력받는다. subject, point, grade = map(str, sys.stdin.readline().split())
  7. 등급이 P가 아닐 경우에만 계산하며 if (grade != 'P')
  8. (학점 x 과목평점)의 결과를 더하고 total += float(point) * grade_dic[grade]
  9. 학점의 총합에 학점도 따로 더한다. point_total += float(point)
  10. 전공과목별(학점 x 과목평점)의 합을 학점의 총합으로 나눈 결과를 출력한다. print(total / point_total)
반응형

3. 소스코드

import sys

grade_dic = {'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}

total = 0
point_total = 0
for _ in range(20):
    subject, point, grade = map(str, sys.stdin.readline().split())
    if (grade != 'P'):
        total += float(point) * grade_dic[grade]
        point_total += float(point)
        
print(total / point_total)
728x90
반응형