100세까지 코딩
[do it 알고리즘] 백준 1546 (배열과 리스트) 본문
문제 설명
풀기 전 생각
- 배열 생성 후 하나씩 저장
- Arrays.sort를 사용하여 정렬 후 최대값(M)찾기
- 배열을 순회하며 총합 구하기
- 계산식을 묶어 (총합 * 100 / M / N) 으로 평균 구하기
import java.util.Arrays;
import java.util.Scanner;
public class Baek1546 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] arr = new int[N];
int sum = 0;
for(int j = 0; j < arr.length; j++){
arr[j] = sc.nextInt();
}
Arrays.sort(arr);
for(int j = 0; j < arr.length; j++){
sum += arr[j];
}
double avg = (double)sum * 100 / arr[N-1] / N;
System.out.println(avg);
}
}
오류 및 개선
- 오류는 없지만 배열에 저장하지 않고 바로 구할 수 있음
- 메모리 및 시간 성능 향상
최종
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int max = 0;
int sum = 0;
for(int j = 0; j < N; j++){
int score = sc.nextInt();
max = score > max ? score : max;
sum += score;
}
double avg = (double)sum * 100 / max / N;
System.out.println(avg);
}
}
'코딩테스트 > 자바' 카테고리의 다른 글
[do it 알고리즘] 백준 2018 (투 포인터) (0) | 2023.09.24 |
---|---|
[do it 알고리즘] 백준 11659 (구간 합 구하기) (0) | 2023.09.22 |
[do it 알고리즘] 백준 11720 (배열과 리스트) (0) | 2023.09.17 |
[프로그래머스] Lv0.전국 대회 선발 고사 (0) | 2023.09.01 |
[프로그래머스] Lv0.특이한 정렬 (0) | 2023.08.31 |