https://www.acmicpc.net/problem/1546
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net
💡 주의 사항
평범한 평균을 구하는 것이 아니라, 입력받은 수의 최대값을 구한 후, 모든 점수를 (점수 / 최대값) * 100으로 변환해야 함
🗒 풀이
java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] scores = new int[num];
int max = -1;
for (int i = 0; i < scores.length; i++) {
int score = sc.nextInt();
scores[i] = score;
if (score > max) {
max = score;
}
}
double sum = 0;
for (int i = 0; i < scores.length; i++) {
int score = scores[i];
sum += (((float) score / max) * 100);
}
System.out.println(sum / num);
}
}
- 첫 번째 입력받은 값은 앞으로 입력 받을 성적의 크기, 즉 배열의 크기다. 이 값을 사용하여 배열 scores의 크기를 지정한다.
- max값을 구하고, 각 성적의 값들을 배열에 입력하기 위해 for문을 돌린다
- sum 변수에 각 변환된 성적을 입력하고, 평균(sum / num)값을 출력
python
num = int(input())
scores = list(map(int, input().split()))
m = max(scores)
total = 0
for i in scores:
total += (i / m) * 100
print(total / num)
- 입력받은 값들을 split()한 후 int형으로 변환한 것을 list 형태로 저장
- 리스트 scores에서 최대값을 max () 함수를 사용해 구한다
- total 변수에 각 리스트의 변환된 값을 누적시켜준다
- 평균(total / num)을 출력해준다
'알고리즘' 카테고리의 다른 글
[백준] 2439번: 별 찍기 - 2(java, python) (0) | 2022.07.03 |
---|---|
[백준] 2438번: 별 찍기 - 1(java, python) (0) | 2022.07.03 |
[백준] 1157번: 단어 공부 (java, python) (0) | 2022.07.01 |
[백준] 1152번: 단어의 개수(java, python) (0) | 2022.07.01 |
[백준] 1008번: A/B (java, python) (0) | 2022.07.01 |