728x90
1. 문제
N명의 학생들의 성적이 학번순서대로 주어졌다.
학번 구간 [A, B]가 주어졌을 때 이 학생들 성적의 평균을 구하는 프로그램을 작성하라.
2. 풀이
주석달린 것처럼 Math.round 사용해서 풀어보려고 시도했지만 25.00같이 끝자리가 0두개로 끝나는 경우 예외처리를 해야해서 String.format방식으로 변경했다.
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String args[]) throws Exception
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(in.readLine());
int N = Integer.parseInt(st.nextToken());//학생수
int K = Integer.parseInt(st.nextToken());//구간수
int[] scores = new int[N+1];
st = new StringTokenizer(in.readLine());
for(int i=1;i<=N;i++){
scores[i] = scores[i-1]+Integer.parseInt(st.nextToken());
}
StringBuilder sb = new StringBuilder();
int a,b;
double result;
for(int i=0;i<K;i++){
st = new StringTokenizer(in.readLine());
a = Integer.parseInt(st.nextToken());
b = Integer.parseInt(st.nextToken());
result = (double)(scores[b]-scores[a-1])/(b-a+1);
//result = Math.round(result*100)/(double)100;
//sb.append(result).append("\n");
sb.append(String.format("%.2f\n",result));
}
System.out.println(sb);
}
}
3. 결과
'코딩테스트 > ELSE' 카테고리의 다른 글
[CODILITY] BinaryGap - Java (0) | 2023.03.19 |
---|---|
[Softeer] 성적평가 - JAVA (0) | 2023.02.07 |
[Softeer] 금고털이 - JAVA (0) | 2023.02.03 |
[JO] 1658 최대공약수와 최소공배수 (0) | 2022.07.31 |
[JO] 1339 문자삼각형2 - JAVA (0) | 2022.06.03 |
댓글