본문 바로가기

코딩테스트

[백준] 25206번: 너의 평점은 (실버5, Python)

반응형

https://www.acmicpc.net/problem/25206

 

25206번: 너의 평점은

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

www.acmicpc.net

 

문제 해결 아이디어

1. 학점 중 P학점은 평점에 포함되지 않는다. (예외처리 필요!!)

2. 입력은 20번 들어온다. 하지만 더 많은 입력값이 들어올 것을 대비하여 예외문을 삽입 (try, except)

3. 누적 값을 저장할 변수를 미리 선언해준다.

4. 각 평점에 대응하는 딕셔너리를 미리 선언하였음.

5. 결과값 출력은 소수점 6번째 자리까지 반올림 하였음. (내 맘)

 

소스코드 (Python)

def cal():
    total_cre = 0
    total_grd = 0
    
    grade = {
        '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
    }
    while True:
        try:
            obj, cre, grd = [iter for iter in input().split()]
            cre = float(cre)
            if grd == 'P': pass
            else:
                total_cre += cre
                total_grd += cre * grade[grd]
        except EOFError:
            break
    return round(total_grd/total_cre, 6)
        
if __name__ == '__main__':
    print(cal())

 

결과

굿굿

 

참고

 

EOFError 예외처리 구문

https://pchild.tistory.com/2

 

파이썬 입력이 끝날 때까지 받아오는 방법 [BOJ 10951] A+B - 4 (파이썬 python EOF EOFError)

파이썬 python EOF [BOJ 10951] BOJ 10951번: A+B - 4 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 파이썬을 사용하여 입력이 끝날 때까지 받아오는 방법

pchild.tistory.com

 

반응형