코테/백준
[백준/JAVA] 1546번: 평균
imname1am
2023. 3. 8. 14:24
반응형
🔺 문제
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net
🔺 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
long sum = 0;
long max = 0;
for(int i=0 ; i < N ; i++) {
int tmp = sc.nextInt();
if(tmp > max) max = tmp;
sum += tmp;
}
System.out.println(sum * 100.0 / max / N);
}
}
- 합과 최댓값 변수를 long형으로 설정해주어야 한다.
- 마지막 출력에서 100.0을 써서 알아서 double로 형 변환하게 한다.
(+ 6/7 2회독)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
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 N = Integer.parseInt(br.readLine());
double[] arr = new double[N];
st = new StringTokenizer(br.readLine(), " ");
double max = 0;
for(int i = 0 ; i < N ; i++) {
arr[i] = Integer.parseInt(st.nextToken());
max = Math.max(max, arr[i]);
}
// 점수 바꾸고, 더하기
double sum = 0;
for(int i = 0 ; i < N ; i++) {
arr[i] = arr[i] / max * 100;
sum += arr[i];
}
System.out.println(sum / N);
}
}
|
cs |
입력받자마자 최대 점수 구하고, 합 더하고
마지막 한 번에 sum / max * 100 / N
해도 결과는 같더라...
(참고)
반응형