[softeer] 소프티어 성적평균 파이썬

hyewon9913·2024년 6월 20일
0

코딩테스트(python)

목록 보기
29/46

문제

처음에 n의 범위가 꽤 커서 for문으로 각 범위에 대해 받을 때마다 해당 범위만큼 또 합계를 구해서 평균을 구하는 방식으로 하면 런타임에러가 나지 않을까 하는 생각이 들었다.

근데 딱히 다른 방법이 떠오르는게 없어서 일단 해보았는데 다행히도 런타임에러는 안떴다.

내 코드

import sys
n,k = map(int,sys.stdin.readline().split())
scores = list(map(int,sys.stdin.readline().split()))
for i in range(k):
    a,b = map(int,sys.stdin.readline().split())
    sum = 0
    for j in range(a-1,b):
        sum+=scores[j]
    ans = sum / (b-a+1)
    print("{:.2f}".format(ans))

파이썬으로 소숫점자리 반올림 해주는 법을 몰라가지고 이 부분만 구글링을 통해 검색해서 문제를 해결하였다.

"{:.2f}".format(ans)

이때 숫자 2 부분이 몇번째 자리까지 소숫점으로 나타낼건지 정하는 수이다.
나는 문제에 따라 셋째자리에서 반올림하여 둘째자리까지 나타내기 위해 2를 썼다.

처음에는

round(ans, 2)

이렇게 해주었는데 이 방법을 사용해주면 나누어 떨어질 때
45.00 이렇게 나오는게 아니라 45.0 이렇게 나와서 문제에서 나온 테스트케이스의 답과 달라지게 된다.

따라서 전자의 방식을 사용하여 문제를 해결해주었다.

profile
차근차근 굴러가는 코딩일지

0개의 댓글