반응형
백준 1546번 / 평균 : https://www.acmicpc.net/problem/1546
이번 문제는 자신의 점수 중에서 최댓값을 고른 다음, 모든 점수를 각각 (원래 점수 / 최댓값 * 100)으로 변경한다. 이렇게 새로 계산된 점수들의 평균을 구하는 프로그램을 작성하는 문제이다.
문제를 푸는 아이디어는 간단하다. 과목의 개수 N과 각 과목의 원래 점수들을 입력받고, 입력받은 점수들 중에서 최댓값(a)을 찾는다. 이 최댓값을 이용하여 모든 원래 점수를 문제에서 제시된 방식대로 새로운 점수로 변환한다. 마지막으로, 이 새로운 점수들의 합을 구하고 과목의 개수 N으로 나누어 평균을 계산한다.
문제를 풀어나가는 흐름은 다음과 같다.
- 시험 본 과목의 개수 N을 입력받는다.
- N개의 현재 성적을 공백으로 구분하여 입력받고, 이를 숫자 리스트로 저장한다.
- 저장된 점수 리스트에서 최댓값 M을 찾는다.
- 기존 점수 리스트를 직접 수정한다. 각 원래 점수에 대해 (점수 / M * 100)을 계산하여 새로운 점수로 변환한다.
- 변환된 모든 새 점수들의 합을 구한다.
- 새 점수들의 합을 과목의 개수 N으로 나누어 새로운 평균을 계산한다.
- 계산된 평균을 출력한다.
내가 만든 코드는 다음과 같다.
N = int(input())
list1 = list(map(int,input().split()))
a = max(list1)
for k in range(len(list1)):
list1[k] = list1[k] / a * 100
mean = sum(list1) / len(list1)
print(float(mean))
출력 결과는 다음과 같다.

반응형
'파이썬 > 예제' 카테고리의 다른 글
| 백준 10811번 바구니 뒤집기 - swap 매커니즘 (0) | 2025.05.19 |
|---|---|
| 백준 3052번 나머지 - 리스트 2개 사용하기 (0) | 2025.05.19 |
| 백준 5597번 과제 안 내신 분...? - 역시나 리스트 (0) | 2025.05.19 |
| 백준 10813번 공 바꾸기 - 스왑(swap) 사용하기 (0) | 2025.05.19 |
| 백준 10810번 공 넣기 - 리스트 & 조건문 (0) | 2025.05.19 |