본문 바로가기
개인 공부/알고리즘 트레이닝

[Softeer] 성적 평균

by 아메리카노와떡볶이 2022. 10. 28.
728x90

https://softeer.ai/practice/info.do?idx=1&eid=389&sw_prbl_sbms_sn=95043 

 

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이하이면 정답으로 채점됨.

입력예제1

5 3
10 50 20 70 100
1 3
3 4
1 5

출력예제1

26.67
45.00
50.00

 

python

import sys
N, K = map(int, input().split())
list =  list(map(int, input().split()))
avg = []

for i in range(K):
    tmp = 0
    a,b = map(int, input().split())
    for j in range(a-1,b):
        tmp += list[j]
    tmp = tmp/(b-a+1)
    avg.append(tmp)

for a in avg:
    print(format(a,".2f"))

 

C

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int a,b;
scanf("%d %d",&a,&b);
    int *arr = malloc(sizeof(int)*a);

for(int i=0;i<a;i++){
scanf("%d",&arr[i]);
}
int p,q;
double sum = 0;
for(int i=0;i<b;i++){
sum = 0;
scanf("%d %d",&p,&q);
for(int j=p-1;j<q;j++){
sum += arr[j];
}
printf("%.2lf\n",sum/(q-p+1));
}

return 0;
}

728x90

댓글