728x90
https://softeer.ai/practice/info.do?idx=1&eid=389&sw_prbl_sbms_sn=95043
문제
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
10 50 20 70 100
1 3
3 4
1 5
출력예제1
26.67
45.00
50.00
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
'개인 공부 > 알고리즘 트레이닝' 카테고리의 다른 글
[Softeer] 금고털이 (0) | 2022.10.28 |
---|---|
[Softeer] 우물 안 개구리 (0) | 2022.10.28 |
[python] BOJ 14502 연구소 (0) | 2022.10.23 |
[python] programmers - 거리두기 확인하기 (0) | 2022.09.20 |
[python] programmers - 수식 최대화 (0) | 2022.09.16 |
댓글