백준
[백준] 25206번 : 너의 평점은 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트
우당탕탕 개발자
2023. 10. 4. 14:18
728x90
반응형

25206번: 너의 평점은
인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치
www.acmicpc.net
1. 문제 설명


2. 풀이과정
해당 문제는 입력받은 등급을 기준으로 P 등급이 아닌 과목의 전공평점을 구하는 문제이다.
각 등급별 과목평점을 미리 딕셔너리를 통해 저장해 두고 전공과목별 점수를 계산할 때 활용한다.
각 입력은 한 번에 입력되므로 문자열 형태로 입력받은 다음 계산할 때 알맞은 자료의 형태로 변환하여 계산한다.
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. 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}
- (학점 x 과목평점)의 합을 저장할 변수를 생성하고 초기화한다. total = 0
- 학점의 총합을 저장할 변수를 생성하고 초기화한다. point_total = 0
- 총 20번을 반복하며 for _ in range(20)
- 전공과목명과 학점, 등급을 문자열 형태로 입력받는다. subject, point, grade = map(str, sys.stdin.readline().split())
- 등급이 P가 아닐 경우에만 계산하며 if (grade != 'P')
- (학점 x 과목평점)의 결과를 더하고 total += float(point) * grade_dic[grade]
- 학점의 총합에 학점도 따로 더한다. point_total += float(point)
- 전공과목별(학점 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
반응형