728x90
반응형
문제
N명의 학생들의 성적이 학번순서대로 주어졌다. 학번 구간 [A, B]가 주어졌을 때 이 학생들 성적의 평균을 구하는 프로그램을 작성하라.
제약조건
1 ≤ N ≤ 106 인 정수
1 ≤ K ≤ 104 인 정수
1 ≤ Si ≤ 100 인 정수
1 ≤ Ai ≤ Bi ≤ N
입력형식
첫 번째 줄에 학생 수 N과 구간 수 K가 주어진다.
두 번째 줄에는 학생의 성적 Si (1 ≤ i ≤ N)가 주어진다. i + 2 (1 ≤ i ≤ K)번째 줄에는 i번째 구간 Ai, Bi가 주어진다.
출력형식
i번째 줄에 i번째 구간의 성적평균(소수셋째자리에서 반올림)을 출력한다.
차이가 0.01이하이면 정답으로 채점됨.
입력예제1
5 3
10 50 20 70 100
1 3
3 4
1 5
출력예제1
26.67
45.00
50.00
✔️ Code
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
s = [0] + list(map(int, input().split()))
result = []
for i in range(k):
sum = 0
a, b = map(int, input().split())
x = s[a:b+1]
for j in x:
sum += j
result.append(round(sum/len(x), 2))
for i in result:
print(format(i, ".2f"))
✏️ Comment
소프티어 문제를 풀면서 느낀 것은 꽤나 시간초과에 빡빡하다는 것(?)
하여튼 이 문제는 Lv.3 치고는 굉장히 쉬웠다. Lv.3까진 원래 쉬운건가..? 다만 round()와 format() 사용법에 대해서 익혀놔야 할 것 같다.
- round(number, n) : number를 소수점 n자리까지 반올림
- ex) round(2.54) => 3
- ex) round(2.54, 1) => 2.5
- round(number, -1) : 십의 자리까지 반올림
- ex) round(182.153, -1) => 180.0
- 10의 n승까지 반올림하려면 -n을 인자로 전달
- format(실수, ".표기할 자리수f") 와 같은 형태로 사용
- format(실수, ".2f") : 실수를 소수 두번째 자리까지 표기하겠다는 뜻
- ex) format(26.667, ".2f") => 26.67
- ex) format(24.0, ".2f") => 24.00
728x90
반응형
'백준 > 구현' 카테고리의 다른 글
[Softeer Lv.3] 스마트 물류 (Python) (0) | 2023.01.16 |
---|---|
[백준🥈3] #17413 단어 뒤집기2 (Python) (0) | 2023.01.02 |
[백준🥈3] #20291 파일 정리 (Python) (0) | 2022.12.30 |
[백준🥈3] #12933 오리 (Python) (1) | 2022.12.29 |
[백준🥈4] #1244 스위치 켜고 끄기 (Python) (0) | 2022.12.28 |
댓글