파이썬/예제

백준 1546번 평균 - 헷갈리지말자

thpop 2025. 5. 19. 16:20
반응형

백준 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))

 

 

출력 결과는 다음과 같다.

반응형