관리 메뉴

솜씨좋은장씨

[BaekJoon] 10984번 : 내 학점을 구해줘 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 10984번 : 내 학점을 구해줘 (Python)

솜씨좋은장씨 2021. 9. 2. 20:46
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 내 학점을 구해줘 입니다.

백준의 내 학점을 구해줘 문제를 파이썬으로 풀이해보았습니다.

 

10984번: 내 학점을 구해줘

게으른 근우는 열심히 놀다가 문득, 자신의 학점 평균이 얼마일지 궁금해졌다. 학사시스템도 들어가기 귀찮아하는 근우를 위해 구해주도록 하자. 

www.acmicpc.net

👨🏻‍💻 문제 풀이

이 문제는 이전의 학점을 구하는 문제와 비슷한 문제입니다.

2021.07.27 - [Programming/코딩 1일 1문제] - [BaekJoon] 2754번 : 학점계산 (Python)

2021.08.22 - [Programming/코딩 1일 1문제] - [BaekJoon] 2755번 : 이번학기 평점은 몇점? (Python)

비슷하지만!

여러학기의 학점을 입력받고

2
4
3 4.3
2 2.0
4 0.0
2 4.0
3
4 0.0
4 0.0
3 0.0

각 학기마다의 총 학점과 평점을 구해서 출력하는 문제로 조금 다릅니다.

11 2.3
11 0.0

먼저 각 학기의 학점과 점수 리스트를 받아 총 학점과 평점을 구하는 함수를 만들었습니다.

total_grade, total_score = 0, 0

총 학점과 평점을 넣을 변수를 선언 한다음

for grade_score in grade_score_list:
        grade, score = map(float, grade_score.split())
        
        total_grade += grade
        total_score += score * grade
        
    total_score = total_score / total_grade

그 다음 "학점 점수" 로 이루어진 문자열이 담긴 리스트에서 하나씩 꺼내어서 split -> map(float) 을 활용해

"학점 점수" 를 두개의 실수인 학점(grade) 점수(score)로 만들어줍니다.

 

총 학점에 grade를 계속 더하여 구하고

평점은 점수 * 학점 을 곱한 값을 계속 더한 다음 총 학점으로 나누어 줍니다.

f"{int(total_grade)} {round(total_score, 2)}"

마지막으로 f-string을 활용해서 출력 모양의 문자열을 만들어 줍니다.

총 학점은 int를 활용해서 정수로

평점은 소수점 첫째 자리까지 보여주면서 소수점 일의자리의 오차정도는 걱정하지 않아도 된다고 하니

round 함수를 활용하여 소수점 첫째 자리까지 반올림 해줍니다.

2021.08.22 - [Programming/Python] - [Python] round 함수 사용 시 주의 사항!

 

전체 코드는 아래를 참고해주세요.

👨🏻‍💻 코드 ( Solution )

def get_my_score(grade_score_list):
    total_grade, total_score = 0, 0
    for grade_score in grade_score_list:
        grade, score = map(float, grade_score.split())
        
        total_grade += grade
        total_score += score * grade
        
    total_score = total_score / total_grade
    
    return f"{int(total_grade)} {round(total_score, 2)}"


if __name__ == "__main__":
    for _ in range(int(input())):
        grade_score_list = []
        for _ in range(int(input())):
            grade_score = input()
            grade_score_list.append(grade_score)
        print(get_my_score(grade_score_list))
 

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