문제
- N명의 학생들의 성적이 학번 순서대로 있다.
- 학번 구간[A, B]이 주어졌을 때 이 학생들의 성적의 평균을 구하는 문제이다.
- 학생수가 N일때 1 ≤ N ≤ 10^6인 정수이다.
- 구간 수가 K일때 1 ≤ K ≤ 10^4인 정수이다.
- 학생의 성적이 S일때 1 ≤ S ≤ 100인 정수이다.
- 구간이 A, B일때 1 ≤ A ≤ B ≤ N 이다.
- 성적 평균은 소수 셋째짜리에서 반올림한다.
알고리즘
- 학생 수와 구간 수를 입력받는다.
- 학생의 성적을 입력받아 리스트 변수에 넣는다.
- 반복문을 통해 구간을 입력받고 성적 평균을 도출해낸다.
- 성적 평균은 소수 셋째 자리에서 반올림하여 출력한다.
코드
import sys
n, k =map(int,sys.stdin.readline().split())
s = list(map(int,sys.stdin.readline().split()))
# 구간 수만큼 반복한다.
for i in range(k):
a, b = list(map(int,sys.stdin.readline().split()))
# 구간의 크기만큼 나눠준다.
# sum함수를 통해 구간의 모든 수를 더한다.
slash = b-a +1
average = sum(s[a-1:b])/slash
# 소수 셋째 자리에서 반올림한다.
print("%0.2f" % average)
결과
위 코드를 실행하게 되면 다음 출력 화면과 같은 결과를 얻을 수 있다.
코드를 분석하게 되면 구간 수만큼 반복하여 학생들의 구간을 입력받고 입력을 받은 동시에 학생의 평균을 도출해내는 코드라고 할 수 있다.
github
'CodingTest > Softeer' 카테고리의 다른 글
[softeer] 소프티어(파이썬): 강의실 배정 ★★★ (0) | 2021.05.16 |
---|---|
[softeer] 소프티어(파이썬): 우물 안 개구리 ★★★ (0) | 2021.05.16 |
[softeer] 소프티어(파이썬): 스마트 물류 ★★★ (0) | 2021.05.15 |
[softeer] 소프티어(파이썬): 금고털이 ★★ (1) | 2021.05.15 |
[softeer] 소프티어(파이썬): 징검다리 ★★★ (0) | 2021.05.14 |