백준 알고리즘

백준 - 1546번 평균 python 문제풀이 [Hellfer]

Hellfer 2023. 12. 4. 13:20
728x90

https://www.acmicpc.net/problem/1546

 

1546번: 평균

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

www.acmicpc.net

🔷 알고리즘 분류 - 수학, 사칙연산   난이도 - 브론즈 1

1. input(): 사용자로부터 입력을 받는 함수입니다. 기본적으로 문자열 형태로 입력을 받습니다.


2. int(): 정수형으로 형변환을 해주는 함수입니다.

본 문제에서는 input()으로 받은 문자열을 정수형으로 변환하는 데 사용합니다.


3. list(): 리스트로 형변환을 해주는 함수입니다.


4. map(): 첫 번째 인자로 받은 함수를 두 번째 인자로 받은 iterable의 모든 항목에 적용하여 결과를 반환하는 함수입니다.


5. split(): 문자열을 공백을 기준으로 분리하여 리스트로 만드는 메서드입니다.


6. max(): iterable에서 최댓값을 찾아 반환하는 함수입니다.


7. for문: 반복문의 일종으로, 명령을 반복적으로 수행합니다.


8. append(): 리스트에 항목을 추가하는 메서드입니다.


9. sum(): iterable의 모든 항목의 합을 계산하는 함수입니다.

 

10. print(): 값을 화면에 출력하는 함수입니다.

🔶문제 풀이 - 리스트를 이용한 풀이

# 사용자로부터 정수 n을 입력받음
n=int(input())

# 사용자로부터 n개의 정수를 입력받아 리스트 x를 생성
x=list(map(int,input().split()))

# 빈 리스트 result 생성
result=[]

# 리스트 x의 각 요소를 최대값으로 나눈 후 100을 곱한 값을 result에 추가
# 즉, 각 요소가 최대값 대비 몇 퍼센트인지를 계산하여 result에 저장
for i in range(len(x)):
    result.append(x[i]/max(x)*100)

# 리스트 result의 평균값을 계산
average=sum(result)/n

# 평균값을 출력
print(average)

🔶 문제 이해하기

이 문제는 배열의 각 요소를 최댓값으로 나눈 후 100을 곱한 값을 계산하는 것을 요구하며, 그 결괏값들의 평균을 구하라는 내용입니다.

 

즉, 모든 점수를 최대 점수에 대한 비율로 변환한 후, 그 비율들의 평균을 출력하라는 것이 목표입니다.

예를 들어, 입력이 [40, 80, 60]이면, 최대 점수는 80이므로 이를 기준으로 각 점수를 변환하면 [50, 100, 75]가 됩니다. 

이때의 평균은 (50+100+75)/3 = 75입니다. 

 

🤗파이팅입니다~ 여러분!!🤗

728x90