관리 메뉴

솜씨좋은장씨

[BaekJoon] 25206번 : 너의 평점은 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 25206번 : 너의 평점은 (Python)

솜씨좋은장씨 2022. 9. 14. 11:33
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 너의 평점은 입니다.

 

25206번: 너의 평점은

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

www.acmicpc.net

👨🏻‍💻 문제 풀이

이 문제는 매년 학기가 끝날때마다 대학생이라면 한번 쯤은 해보았던 학점 계산을 직접 구현하는 문제입니다.

패스 / 논패스 과목을 제외하고 나머지 과목의 결과를 바탕으로 평점을 계산 하면 됩니다.

def convert_rating_to_score(rating):
    rating_dict = {
        "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
    }
    
    return rating_dict[rating]


def calculate_grade(record_list):
    total_time, total_score = 0, 0
    
    for record in record_list:
        subject_name, time, rating = record.split()
        
        if rating == "P":
            continue
            
        total_time += float(time)
        
        total_score += convert_rating_to_score(rating=rating) * float(time)
        
    return total_score / total_time

마지막으로 하위 6자리까지 출력하는데에는 % 를 활용하였습니다.

def make_answer_format(answer):
    return "%.6f"%answer

👨🏻‍💻 코드 ( Solution )

def convert_rating_to_score(rating):
    rating_dict = {
        "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
    }
    
    return rating_dict[rating]


def calculate_grade(record_list):
    total_time, total_score = 0, 0
    
    for record in record_list:
        subject_name, time, rating = record.split()
        
        if rating == "P":
            continue
            
        total_time += float(time)
        
        total_score += convert_rating_to_score(rating=rating) * float(time)
        
    return total_score / total_time


def make_answer_format(answer):
    return "%.6f"%answer


if __name__ == "__main__":
    record_list = []
    
    for _ in range(20):
        record = input()
        record_list.append(record)
    
    answer = calculate_grade(
        record_list=record_list
    )
    
    print(make_answer_format(answer=answer))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments