[구현] 성적 평균 (Softeer)

Soorim Yoon·2022년 11월 3일
0
post-custom-banner

문제

성적 평균 (문제 보기)

  • 학생 수(N), 구간 수(K)와 학생들의 성적, 평균을 구하고자 하는 구간이 주어질 때, 해당 구간의 학생들의 평균 점수를 구하라.

✏️ 파이썬 함수

반올림 : round()

  • round() 함수를 사용해 소수점 n째 자리까지 반올림한 값을 구할 수 있다. 아래 코드는 avg 변수에 저장된 값을 반올림하여 소수점 둘째자리까지 구하는 코드이다.
avg = round(avg, 2)

파이썬 자리수 조절(올림, 내림, 반올림)
반올림(round)예제

소수점 이하 자리 수 지정 : format()

  • format() 함수를 사용해 소수점 이하 몇 자리 수까지 출력할지 지정할 수 있다. 아래 코드는 avg 변수에 저장된 값을 소수점 이하 둘째자리까지 구하는 코드이다.
format(avg, ".2f")

소수점 자리 수 지정하여 출력하는 방법

input, sys.stdin.readline

  • 파이썬에서 값을 입력 받을 때 input, sys.stdin.readline을 사용할 수 있다.
N, K = map(int, input().split())		# input()
score = input().split(" ")
a, b = map(int, input().split())
N, K = map(int, sys.stdin.readline().split())		# sys.stdin.readline
score = sys.stdin.readline().split(" ")
a, b = map(int, sys.stdin.readline().split())

파이썬 입출력 함수

소스 코드

1) input() 사용

import sys

N, K = map(int, input().split())        # N(학생 수), K(구간 수) 값 입력
score = input().split(" ")              # 점수 입력

for i in range(K):
    a, b = map(int, input().split())    # 구간 입력
    avg = 0
    for j in range(a-1, b):             # 구간에 따른 평균 값 계산
        avg += int(score[j])
    avg /= (b-a+1)                      # 전체 점수의 합 / 인원 수
    avg = round(avg, 2)                 # 소수점 2자리까지 반올림하여 구함
    print(format(avg, ".2f"))           # 소수점 2자리까지 출력 (계산 결과가 정수 또는 소수점 첫째자리에서 나눠떨어지는 경우 둘째자리까지 0으로 채워 출력)

2) sys.stdin.readline() 사용

  • python의 input() 함수는 동작 속도가 느리기 때문에 sys.stdin.readline() 함수를 사용하여 시간 초과를 피할 수 있다.
import sys

N, K = map(int, sys.stdin.readline().split())       # N(학생 수), K(구간 수) 값 입력
score = sys.stdin.readline().split(" ")             # 점수 입력

for i in range(K):
    a, b = map(int, sys.stdin.readline().split())       # 구간 입력
    avg = 0
    for j in range(a-1, b):             # 구간에 따른 평균 값 계산
        avg += int(score[j])
    avg /= (b-a+1)                      # 전체 점수의 합 / 인원 수
    avg = round(avg, 2)                 # 소수점 2자리까지 반올림하여 구함
    print(format(avg, ".2f"))           # 소수점 2자리까지 출력 (계산 결과가 정수 또는 소수점 첫째자리에서 나눠떨어지는 경우 둘째자리까지 0으로 채워 출력)

실행 결과

test case

profile
👩🏻‍💻 AI를 좋아하는 IT학부생
post-custom-banner

0개의 댓글