728x90
[문제]
백준 온라인 저지 - 1546번
https://www.acmicpc.net/problem/1546
[풀이]
1. 일일이 변환 점수를 구할 필요 없이 한번에 변환한 점수의 평균 점수를 구하자.
(A/M*100 + B/M*100 + C/M*100) / 3 = (A + B + C)* 100 /M / 3
2. 오차범위를 고려하자.
(오차범위에 걸려서 여러번 재시도를 했었다..ㅠ)
"실제 정답과 출력값의 절대오차 또는 상대오차가 10-2 이하이면 정답이다. " 소숫점까지 구해야 통과가 된다.
따라서, 100을 곱해주는 대신 100.0을 곱해서 소수로 계산하였다.
[통과 코드]
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int catCnt = sc.nextInt();
long sum = 0;
long max = 0;
for(int i = 0; i < catCnt; i++){
int score = sc.nextInt();
if(max < score){
max = score;
}
sum += score;
}
System.out.println(sum * 100.0 / max / catCnt);
}
}
'Java > 코딩테스트' 카테고리의 다른 글
[백준-11659] 구간 합 구하기 (0) | 2024.06.26 |
---|---|
숫자의 합 구하기 (0) | 2024.06.20 |
[Do it!] 섹션0.코딩테스트 준비하기 (0) | 2024.05.17 |
[프로그래머스/JAVA] 스택/큐 기능개발 (0) | 2021.11.29 |
[ 프로그래머스/JAVA] 위장 SPY 해시 (0) | 2021.11.10 |