종식당

Softeer 연습문제 성적평균 with JAVA 본문

Softeer

Softeer 연습문제 성적평균 with JAVA

종식당 2025. 1. 29. 16:02
728x90
반응형

https://softeer.ai/practice/6294
 

Softeer - 현대자동차그룹 SW인재확보플랫폼

 

softeer.ai


📝 문제 설명

첫번째줄에 N,K를 입력받으면 다음 줄에 N만큼의 성적을 입력받고 K만큼의 구간을 입력 받아 이 구간에 해당하는 점수들의 평균을 구해 소수점 셋째자리에서 반올림해서 둘째자리까지 출력하면 된다.

✨ 제출 코드

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int N = Integer.parseInt(st.nextToken());
        int K = Integer.parseInt(st.nextToken());

        int [] score = new int[N];

        st = new StringTokenizer(br.readLine());

        for(int i = 0; i < N; i++){
            score[i] = Integer.parseInt(st.nextToken());    
        }

        StringBuilder sb = new StringBuilder();

        for(int i = 0; i < K; i++){
            st = new StringTokenizer(br.readLine());
            
            int start = Integer.parseInt(st.nextToken());
            int end = Integer.parseInt(st.nextToken());

            double sum = 0;

            for(int j = start; j <= end; j++){
                sum += score[j-1];
            }

            //sb.append(Math.round(sum/(end-start+1) * 100)/100.0).append("\n");
            sb.append(String.format("%.2f",sum/(end-start+1))).append("\n");
        }
        System.out.println(sb);
    }
}

✌️ 코드 설명

이 문제는 어렵지 않게 풀 수 있었는데 다만 반올림을 할때 처음에는 Math.round() 를 이용하여 반올림 하였지만, 45.00, 50.00 같은 값이 45.0, 50.0으로 표시되는 문제가 생겼다.  그래서 String.format을 통해 format을 %.2f로 맞춰준다음 소수점 둘째자리까지 구했다.
그리고 출력하기 편하게 하기 위해 이 값들을 구하고 Stringbuilder에 개행까지 포함해서 담아서 이를 출력해주었다.

😎 마무리

%.2f 소수점 2자리 고정 3.14
%.3f 소수점 3자리 고정 3.142
%.0f 정수만 표시 3

 

 

728x90
반응형