알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄
제목 참조
Think🤔
출력 결과 값을 유추해보니 70 90 80 이면 평균이 80이므로 80초과인 점수가 전체중의 몇프로인지 구하는 문제임
여기서 기억이 안나는건 소수점 4자리에서 3자리까지 표현하는 방법 %f로 3f뭐 했었던 것 같은데 일단 해본다.
처음에 받는 숫자 값이 배열의 갯수이고 이만큼 출력하면 됨.
한 줄씩 출력하므로 sysout에 ln을 붙여주도록 하자.
Solution✍
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
for(int i=0; i<num; i++){
String[] inwon = br.readLine().split(" ");
double sum = 0;
for(int j=1; j<Integer.parseInt(inwon[0]) + 1; j++){
sum += Double.parseDouble(inwon[j]);
}
double avg = sum / Double.parseDouble(inwon[0]);
double pass = 0;
for(int j=1; j<Integer.parseInt(inwon[0]) + 1; j++){
if(Double.parseDouble(inwon[j]) > avg){
pass++;
}
}
// % 써야하므로 escape필요 두번 써야함
System.out.printf("%.3f%%\n",(pass / Double.parseDouble(inwon[0])) * 100);
}
}
}
Review🤩
1. String으로 split 해서 받았는데 inwon[0]을 반복문에서 그대로 썻음 바꿔서 써야함
2. Systehttp://m.out.printf("%.3f%%\n",(pass / Double.parseDouble(inwon[0])));
-> Systehttp://m.out.printf("%.3f%%\n",(pass / Double.parseDouble(inwon[0])) * 100); * 100을 넣어서 통과했는데
pass는 3개 , 인원은 5개 그럼 * 나중에 인데 0.xx 이런식으로 나오는데 여기서 * 100을 해야 퍼센트 값이 나오기 때문
'Algorithm' 카테고리의 다른 글
[백준] 브1 > 초콜릿 자르기 2163번 - JAVA (0) | 2024.10.16 |
---|---|
[백준] 브1 > 최대공약수와 최소공배수 2609번 - JAVA (2) | 2024.10.08 |
[백준] 브1 > 단어 공부 (1) | 2024.09.11 |
[백준] 브론즈 1 > 더하기 사이클 (0) | 2024.09.10 |
[백준] 크로아티아 알파벳 2941번 (2) | 2024.09.08 |