티스토리 뷰
[Python] 백준 알고리즘 온라인 저지 1546번 : 평균
Python3 코드
n = int(input()) # 과목 수
test_list = list(map(int, input().split()))
max_score = max(test_list)
new_list = []
for score in test_list :
new_list.append(score/max_score *100) # 새로운 점수 생성
test_avg = sum(new_list)/n
print(test_avg)
Python3 코드 풀이
1. 코드 풀이에 대한 전체적인 설명
이번 문제는 과목의 숫자와 점수를 입력받으면 공식에 맞게 점수를 바꾸어 평균을 구하는 문제이다. 새로운 점수를 구하는 공식은 입력받은 수 중 최고 점수를 분모로 해서 (입력받은 수/최고 점수*100)으로 계산한다.
문제는 어렵지 않게 풀었다. 새로운 수는 주어진 공식에 대입해서 계산했고 파이썬에는 평균을 구하는 함수가 없기 때문에 평균은 점수의 합에 과목수를 나누어서 구했다.
2. 코드 상단에서 가장 높은 점수를 찾는다.
n = int(input()) # 과목 수
test_list = list(map(int, input().split()))
max_score = max(test_list)
과목수로 입력받는 수는 n에 선언하고 시험 점수는 list 자료형으로 test_list라는 변수에 선언하였다. 새로운 점수를 구하기 위해서는 입력받은 점수 중 가장 큰 점수를 찾아야 하기 때문에 test_list의 원소중 가장 큰 값을 max 함수로 찾았다.
3. 코드 하단, 새로운 숫자 리스트를 생성하고 평균을 구한다.
new_list = []
for score in test_list :
new_list.append(score/max_score *100) # 새로운 점수 생성
test_avg = sum(new_list)/n
for문을 시작하기 전 빈 리스트를 만든다. 리스트의 변수 이름은 new_list로 생성하였다. 이 빈 리스트에는 새로 계산된 점수를 추가하게 된다.
for문을 이용해서 입력받은 시험 점수를 하나씩 꺼내면서 (입력받은 점수/최고 점수*100) 식으로 새로운 점수를 만든다. 이렇게 새로 만든 점수는 append 함수로 리스트에 추가한다.
for문이 끝나면 평균을 구한다. 새로 만든 점수로 이루어진 리스트의 요소를 sum함수로 모두 더하고서 과목수로 나누었다. 파이썬에 평균을 구하는 함수는 없는 것으로 알고 있다.
반응형
'파이썬 스킬업 > 백준 알고리즘 연습' 카테고리의 다른 글
백준 8958번 [Python] OX퀴즈 (1) | 2020.07.06 |
---|---|
백준 3052번 [파이썬] 나머지 set( ) 함수 활용 (1) | 2020.07.05 |
백준 2577번 [파이썬 알고리즘] : 숫자의 개수 _ count함수 활용 (4) | 2020.07.05 |
댓글
반응형