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