CodingTest/Softeer
[softeer] 소프티어(파이썬): 성적 평균 ★★★
JunJangE
2021. 5. 16. 13:09
문제
Softeer
제한시간 : C/C++(1초), Java/Python(2초) | 메모리 제한 : 256MB N명의 학생들의 성적이 학번순서대로 주어졌다. 학번 구간 [A, B]가 주어졌을 때 이 학생들 성적의 평균을 구하는 프로그램을 작성하라. 입
softeer.ai
- 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
junjange/CodingTest
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com