본문 바로가기
알고리즘 코딩테스트

[백준] 1546번 : 평균 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2024. 1. 4.
728x90
반응형

 

 

1546번: 평균

첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

최고 점수를 기준으로 전체 점수를 다시 계산해야 하므로 모든 점수를 입력받은 후에 최고점을 별도로 저장해야 한다.

또한 문제에서 제시한 한 과목의 점수를 계산하는 식은 총합과 관련된 식으로 변환할 수 있다.

A, B, C 점수에 대해 변환 점수의 평균을 구하는 식

(A / M * 100 + B / M * 100 + C / M * 100) / 3 = (A + B + C) * 100 / M / 3 = 총합 * 100 / 최댓값 / 개수

따라서 일일이 변환 점수를 구할 필요 없이 한 번에 변환한 점수의 평균을 구할 수 있다.

 

  1. 점수를 1차원 리스트에 저장한다.
  2. 리스트를 탐색하며 최고 점수와 점수의 총합을 구한다.
  3. '총합 * 100 / 최고 점수 / 과목의 수'를 계산해 다시 계산한 점수의 평균값을 출력한다.

슈도코드

  1. n에 과목의 수 입력
  2. myList에 점수 정보 저장
  3. myMax에 myList 정보 중 최댓값 저장
  4. sum에 myList 모든 데이터 값 더하기
  5. sum * 100 / myMax / n 출력
반응형

3. 소스코드

n = input()
myList = list(map(int, input().split()))

myMax = max(myList)
sum = sum(myList)

print(sum * 100 / myMax / int(n))
728x90
반응형