반응형
[1] 백준 카테고리 단계별로 풀어보기
1차원 배열
7단계 4344번 문제
평균은 넘겠지
링크
https://www.acmicpc.net/problem/4344
[2] 문제
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
1. 입력
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
2. 출력
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
3. 예제 입력 1
5
5 50 50 70 80 100
7 100 95 90 80 70 60 50
3 70 90 80
3 70 90 81
9 100 99 98 97 96 95 94 93 91
4. 예제 출력 1
40.000%
57.143%
33.333%
66.667%
55.556%
[3] 정답
1. 정답 해설 미포함
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] arr;
int testcase = in.nextInt();
for(int i = 0 ; i < testcase ; i++) {
int n = in.nextInt();
arr = new int[n];
double sum = 0;
for(int i1 = 0 ; i1 < n ; i1++) {
int grade = in.nextInt();
arr[i1] = grade;
sum += grade;
}
double avg = (sum / n) ;
double count = 0;
for(int i2 = 0 ; i2 < n ; i2++) {
if(arr[i2] > avg) {
count++;
}
}
System.out.printf("%.3f%%\n",(count/n)*100);
}
in.close();
}
}
2. 정답 해설 포함
import java.util.Scanner;
//java.util.Scanner를 import 한다.
public class Main {
// Main 함수를 선언한다.
public static void main(String[] args) {
// 접근 제한 없이 메모리에 상주하고 리턴 값이 없이 main 함수를 선언한다.
Scanner in = new Scanner(System.in);
// 값을 입력받을수 있께 Scanner 변수 in를 선언한다.
int[] arr;
// 배열 arr[]를 선언한다.
int testcase = in.nextInt();
// 변수 testcase를 선언하고 값을 입력받아 testcase에 저장한다.
for(int i = 0 ; i < testcase ; i++) {
int n = in.nextInt();
// 학생수를 입력받는다.
arr = new int[n];
// int 형 배열 arr를 n개 만큼 생성한다.
double sum = 0;
// 성적 합을 저장하는 double형 변수인 sum를 선언하고 0으로 초기화한다.
// 성적을 입력하는 부분이다.
for(int i1 = 0 ; i1 < n ; i1++) {
int grade = in.nextInt();
// 성적을 입력받아 그 값을 변수 grade에 저장한다.
arr[i1] = grade;
// 변수 grade 값을 변수 i1에 저장한다.
sum += grade;
// sum + grade 한 값을 변수 sum에 저장한다.
}
double avg = (sum / n) ;
// double 형 변수 avg를 선언하고 sum/n한 값을 저장한다.
double count = 0;
// 평균 넘는 학생 수를 저장하는 변수인 count를 선언하고 초기화한다.
// 평균 넘는 학생 비율를 찾는다.
for(int i2 = 0 ; i2 < n ; i2++) {
if(arr[i2] > avg) {
// 변수 arr[i2]가 평균을 넘을 때마다 if문 안의 값이 실행된다.
count++;
// count값이 더해진다.
}
}
System.out.printf("%.3f%%\n",(count/n)*100);
// (count/n)*100한 결과 값을 소수점 3자리까지 출력한다.
}
in.close();
// 객체 in의 사용을 종료한다.
}
}
반응형
'프로그래밍 > 백준 문제 풀이(자바)' 카테고리의 다른 글
백준 4673번 자바 문제 답/해설(셀프 넘버 문제) (0) | 2021.11.29 |
---|---|
백준 15596번 문제 자바 답/해설(정수 N개의 합) (0) | 2021.11.28 |
백준 8958번 문제 자바 답/해설(OX 문제) (0) | 2021.11.27 |
백준 평균 문제 자바 답/해설(1546번 문제) (0) | 2021.11.07 |
백준 자바 나머지 답/해설(3052번 문제) (0) | 2021.11.03 |