Algorithm/Softeer
[Softeer][level3] 성적 평균 - 파이썬(Python)
sdoaolo
2023. 1. 31. 06:31
728x90
https://softeer.ai/practice/info.do?idx=1&eid=389
Softeer
연습문제를 담을 Set을 선택해주세요. 취소 확인
softeer.ai
문제
N명의 학생들의 성적이 학번순서대로 주어졌다.
학번 구간 [A, B]가 주어졌을 때 이 학생들 성적의 평균을 구하는 프로그램을 작성하라.
제약조건
1 ≤ N ≤ 106 인 정수
1 ≤ K ≤ 104 인 정수
1 ≤ Si ≤ 100 인 정수
1 ≤ Ai ≤ Bi ≤ N
입력형식
첫 번째 줄에 학생 수 N과 구간 수 K가 주어진다.
두 번째 줄에는 학생의 성적 Si (1 ≤ i ≤ N)가 주어진다. i + 2 (1 ≤ i ≤ K)번째 줄에는 i번째 구간 Ai, Bi가 주어진다.
출력형식
i번째 줄에 i번째 구간의 성적평균(소수셋째자리에서 반올림)을 출력한다.
차이가 0.01이하이면 정답으로 채점됨.

💡 사고 과정

💻 내가 쓴 정답코드
import sys
input = sys.stdin.readline
n, k = map(int,input().split())
scores = [0] + list(map(int,input().split()))
for i in range(1, n+1): #누적합 만들기
scores[i] += scores[i-1]
for i in range(k):
start, end = map(int,input().split())
num = end - start +1
if (start == 1):
result = scores[end] / num
else:
result = (scores[end] - scores[start-1]) / num
#print(round(result, 2)) # 반올림하는 함수라서 값이 없을 수도 있음 -> 45.0
print(f'{result:.2f}') #값이 없으면 0으로 채워주는 친구 -> 45.00
💡 새롭게 알게 된 점
round() 함수 -> 반올림해주는 함수
f'{변수}' -> 형식에 맞춰 출력
:.2f -> 소수점 아래 2자리까지 반올림

출처
https://codechacha.com/ko/python-round-under-decimal-point/
Python 소수점 반올림, round() 예제
파이썬에서 round() 함수를 이용하여 소수점 n자리, 십의 자리 반올림을 할 수 있습니다. round(number)에 인자로 숫자를 전달하면, 소수점 0자리까지 반올림한 값을 리턴합니다. round(number, n)는 인자로
codechacha.com