꾸준히 합시다
백준 파이썬 1546번: 평균 본문
문제 유형: 수학, 사칙연산
# Solution 1
n = int(input())
a = list(map(int, input().split(' ')))
a.sort(reverse=True)
new_score = []
for score in a:
score = score / a[0] * 100
new_score.append(score)
new = sum(new_score)
print(new/n)
우선 생각나는 대로 짜 본 코드.
# Solution 2
import sys
n = int(sys.stdin.readline())
score_list = list(map(int, sys.stdin.readline().strip().split()))
max_score = max(score_list)
new_list = []
for score in score_list :
new_list.append(score / max_score * 100)
avg = sum(new_list) / n
print(avg)
가독성을 높이기 위해 다시 정리해보았다. 시간, 메모리 면에서 이전의 답안과 그리 큰 차이는 없었다.
세 수 중 가장 큰 수를 구하기 위해선 max함수를 사용하면 될 일이었다. 리스트를 뒤집은 다음 가장 첫 번째 항목을 가져올 필요 없이.
'코딩 테스트 문제 풀이' 카테고리의 다른 글
백준 파이썬 1236번: 성 지키기 (0) | 2021.03.08 |
---|---|
백준 파이썬 1568번: 새 (0) | 2021.03.08 |
백준 파이썬 1543번: 문서 검색 (0) | 2021.03.08 |
백준 파이썬 5397번: 키로거 (0) | 2021.03.08 |
백준 파이썬 1406번: 에디터 (0) | 2021.03.08 |
Comments