문제
세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그러고 나서 모든 점수를 점수/M*100으로 고쳤다.
예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다.
세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.
정답코드
def newscore(lista, b):
n = max(lista)
cnt = 0
for i in lista:
i /= n * 100
cnt += i
avg = cnt / b
return avg
N = int(input())
scorelist = list(map(int, input().split()))
print(newscore(scorelist, N))
풀이
함수구현은 다음과 같다:
- 리스트와 리스트의 길이를 입력받는다.
- 리스트의 최댓값을 구하고,
- 각 요소(성적)의 최댓값을 통한 최종 값을 구하여 새로 만든 avg에 넣고
- 리스트의 길이를 통해 평균값을 반환한다
그리고 그냥 출력하면 되더라.
느낀 점
브론즈 1인데 생각보다 쉬웠다.
이제서야 횟수의 제한 없이 띄어쓰기로 구분된 요소들로 이루어진 리스트의 초기화 방법에 대해서 깨우치게 되었다.
scorelist = list(map(int, input().split()))
'Algorithm > baekjoon' 카테고리의 다른 글
[백준] 2675번 문자열 반복 파이썬 (python) (2) | 2024.03.11 |
---|---|
[백준] 10809번 알파벳 찾기 파이썬 (python) (0) | 2024.03.11 |
[백준] 10811번 바구니 뒤집기 파이썬 (python) (0) | 2024.03.11 |
[백준] 3052번 나머지 파이썬 (python) (0) | 2024.03.11 |
[백준] 10813번 공 바꾸기 파이썬 (python) (0) | 2024.03.10 |
댓글