코테/백준

[백준/JAVA] 4344번: 평균은 넘겠지

imname1am 2023. 4. 1. 12:21
반응형

🔺 문제

 

4344번: 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

www.acmicpc.net

 

🔺 코드

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

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

        int c = Integer.parseInt(br.readLine());

        for(int i = 0 ; i < c ; i++) {
            st = new StringTokenizer(br.readLine()," ");

            int cnt = Integer.parseInt(st.nextToken());	// 학생 수
            int[] arr = new int[cnt];	// 성적 배열
            double sum = 0;
            double avg = 0;

            // 성적 입력
            for(int j = 0 ; j < cnt ; j++) {
                arr[j] = Integer.parseInt(st.nextToken());
                sum += arr[j];
            }

            avg = sum / cnt;

            int over = 0;	// 평균 넘는 학생
            for(int k : arr) {
                if(k > avg) {
                    over++;
            }
        }

        System.out.printf("%.3f", over * 100 / (double)cnt);
        System.out.print("%");
        System.out.println();
        }
    }
}
✅ 해결 아이디어
- 첫 번째 반복문 돌 때마다, 둘째 줄부터 맨 처음 받는 숫자 n 크기의 배열 생성하고 값 저장해 각 줄의 평균 계산.
- 각 줄에서 평균보다 큰 원소의 개수 저장 (변수 over)
- 평균 넘는 학생들의 비율 출력 : over / cnt * 100하면 결과값이 0이 나와 에러가 발생하므로, 결과값이 0이 아닌 double형으로 출력되도록 순서를 바꿔 over * 100 / (double)cnt;로 작성함.

cnt를 애초에 double형으로 선언해도 되고, 만약 int로 선언해놓았다면 double로 나중에 형 변환 해도 되는구만..!


🔺 다른 풀이들

 

[백준] 4344번 : 평균은 넘겠지 - JAVA [자바]

https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스

st-lab.tistory.com

평균 넘는 학생 수 변수를 double형으로 선언하셨다.

그리고 출력할 때도 ("%.3f%%\n", (count / N ) * 100); 하셨고!

printf에서 퍼센트 출력할 때 앞에 % 하나 더 해주면 되는..

 


(참고)

✔ printf에서 % 출력 : %를 두번 입력하면 됨 (%%)

 

[Java] printf에서 나머지(%)연산 출력하기

이렇게 출력했더니 무수히 많은 에러가.. 나머지 연산 하려면 어떻게 해야될까? printf를 이용한 %때문에 에러가 생기는거같은데 println이나 print를 사용해야만 되는걸까? printf로는 정녕 나머지 연

velog.io

 

반응형