관리 메뉴

JIE0025

[Softeer][level3] 성적 평균 - 파이썬(Python) 본문

알고리즘/Softeer

[Softeer][level3] 성적 평균 - 파이썬(Python)

Kangjieun11 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