코딩테스트/ELSE

[Softeer] 성적 평균 - JAVA

5월._. 2023. 2. 5.
728x90

1. 문제

 

Softeer

연습문제를 담을 Set을 선택해주세요. 취소 확인

softeer.ai

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

댓글