728x90
반응형
핵심 포인트
- 문자열 split()
- 조건문
- 기초 구현능력
제출코드
sum, total_credit = 0, 0
for _ in range(20):
_, credit, grade = input().split()
if grade == 'P': continue
elif grade == 'A+': sum += float(credit) * 4.5
elif grade == 'A0': sum += float(credit) * 4.0
elif grade == 'B+': sum += float(credit) * 3.5
elif grade == 'B0': sum += float(credit) * 3.0
elif grade == 'C+': sum += float(credit) * 2.5
elif grade == 'C0': sum += float(credit) * 2.0
elif grade == 'D+': sum += float(credit) * 1.5
elif grade == 'D0': sum += float(credit) * 1.0
elif grade == 'F': sum += float(credit) * 0
total_credit += float(credit)
print(sum / total_credit)
해설
입력은 총 20줄로 고정이기 때문에 range(20)으로 고정합니다. 다음으로 과목, 학점, 점수를 입력받는 과목은 전체 평점을 계산하는 데 필요없기 때문에 변수로 받지않습니다. 이때, 주의할 점은 grade 가 P인 경우에는 무시해야합니다. 따라서, 첫번째 조건문으로 P인 경우 바로 다음 과목을 입력받게 만들었습니다. 다음 조건문 부터는 각 점수에 따른 해당 과목의 총 평점을 계산하여 전체 평점에 더해줍니다. 이때, 평균학점은 과목의 수가 아닌 과목에 할당된 전체 학점의 합으로 나누어야하기 때문에 total_credit에 P를 받은 과목을 제외한 학점을 더해준 뒤 반복문이 끝나면 전체 점수를 전체 학점으로 나누어 평점을 계산합니다.
참고자료 및 그림출처
728x90
반응형
'Programming > Coding Problem' 카테고리의 다른 글
BOJ 2566번: 최댓값 (0) | 2023.05.20 |
---|---|
BOJ 2738번: 행렬 덧셈 (0) | 2023.05.20 |
BOJ 10988번: 팰린드롬인지 확인하기 (0) | 2023.05.19 |
BOJ 2444번: 별 찍기 - 7 (0) | 2023.05.19 |
BOJ 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2023.05.19 |