알고리즘
[해싱] Softeer level 3 성적 평균 (Python 파이썬)(반올림, 소수점)
하고파
2024. 3. 15. 11:39
💡문제 링크
Softeer - 현대자동차그룹 SW인재확보플랫폼
softeer.ai
💡문제 분석 요약
n명의 학생들의 성적 정보가 있다. 구간별 성적 평균을 구하고자 한다. 학번을 기준으로 구간을 나누며, 학번 구간 [A, B]가 주어졌을 때 그 구간에 속하는 학생들의 성적 평균을 구하면 된다.
<입력값>
N, K: 학생 수, 구간 수S: 학생들의 성적이 담긴 배열K개의 줄에 걸쳐 구간 정보[A, B]가 입력된다. (i+2)번째 줄에 구간 [A, B]가 입력되었다면 i번째 줄에 구간 평균이 출력되어야 한다.
💡알고리즘 설계
1. 반복문 k번 돌리기
2. 구간 정보를 입력받고, 학생들의 성적이 담긴 s 배열을 구간에 맞게 슬라이싱하기(해싱)
3. 평균을 구하고, 소수 셋째자리에서 반올림하여 소수 둘째자리까지 보이게 출력하기
💡코드
import sys
n, k = map(int, input().split()) # 학생수, 구간수
s = list(map(int, input().split())) # 각 학생의 성적
for _ in range(k):
a, b = map(int, input().split())
ss = s[a-1: b]
print(f"{round(sum(ss) / len(ss), 2):.2f}")
💡 느낀점 or 기억할정보
1. 배열 속 원소들의 평균을 구하는 파이썬 내장함수는 따로 없다. sum() / len() 해야한다!
2. a를 소수 둘째자리까지 출력하려면? print(f"{a:.2f}")