안경잡이 구루루

백준 1546 ( 평균 ) [ Python ] 본문

파이썬(Python)/문제풀이(백준,BaekJoon)

백준 1546 ( 평균 ) [ Python ]

구루루(gururu) 2020. 6. 23. 16:46
반응형

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


나:

N = int(input())
score = list(map(int,input().split()))
score.sort()
Maximum = score[N-1]
new_score = []

for i in score[:N]:
    new_score.append( i / Maximum *100)

print(sum(new_score) / N )

완성된 코드는 위와 같다.

 

N = int(input())
score = list(map(int,input().split()))
score.sort()
Maximum = score[N-1]
new_score = []

정수형 자료형으로 입력값 N을 받는다. 예제 입력처럼 입력값을 빈칸을 키준으로 나눠 list에 저장한다.

입력값들중 최고점 m을 찾기 위해 sort한 후 list중 가장 마지막에 있는 score[N-1]을 maximum으로 잡는다.

그리고 새로운 평균을 계산한 값이 들어갈 new_score 리스트를 만든다.

 

for i in score[:N]:
    new_score.append( i / Maximum *100)

print(sum(new_score) / N )

 

N까지의 리스트 요소들이 i 에 대입되고 이를 활용해 구한 새로운 평균 값들을 new_score 리스트에 넣는다.

최종적으로 새로운 평균값들의 합의 평균을 print해서 출력한다.


다른사람:

https://jeongmin-lee.tistory.com/44

N = int(input())
M = list(map(int, input().split()))
M_max = max(M)
 
for i in range(N):
    M[i] = M[i]/M_max*100
avg = sum(M)/ N
print("%.2f" %avg)

완성된 코드는 위와 같다.

 

M_max = max(M)

나와 다른 점으로  우선 입력값들중 최대 값을 max 함수를 이용해 구했다.

 

for i in range(N):
    M[i] = M[i]/M_max*100
avg = sum(M)/ N
print("%.2f" %avg)

그리고 다른 list에 새로운 평균값을 넣지 않고 기존의 list를 이용해 그 자리 그대로 새로운 평균값으로 바꿨다.

마지막으로 최종 결과값으로 절대오차,상대오차가 소수 2자리를 넘지 않도록 print해서 출력했다.

반응형