우당탕탕 개발일지

[해싱] Softeer level 3 성적 평균 (Python 파이썬)(반올림, 소수점) 본문

알고리즘

[해싱] 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}")