백준 1546번 풀이

문제

성적별 최댓값을 바탕으로 재계산해서 평균 올리기. 재계산 공식은 원점수/최댓값*100이다. 이거 뭐 나누는 거 아니고 그냥 순서대로 하면 된다. 근데 이거 이렇게 조작해도 금방 뽀록나던데

풀이

import sys
subject=int(sys.stdin.readline()) # 과목 수
score=list(map(int,sys.stdin.readline().split(" "))) # 과목 성적
print(subject, score)

첫 줄에는 과목 수, 둘째 줄에는 과목별 점수가 들어간다. 과목 수는 이따 평균 구할 때 쓸 예정.

max(score)

최댓값은 이걸로 찾으면 된다.

import sys
subject=int(sys.stdin.readline()) # 과목 수
score=list(map(int,sys.stdin.readline().split(" "))) # 과목 성적
for i in range(len(score)):
    score.append(score[i]/max(score)*100)
print(score)

이건 줄 알고 해봤더니 리스트 길이가 뭔가 이상하더라고… 생각해보니 append는 바꾸는 게 아니라 추가하는거였다.

import sys
subject=int(sys.stdin.readline()) # 과목 수
score=list(map(int,sys.stdin.readline().split(" "))) # 과목 성적
for i in range(subject):
    score[i]=(score[i]/max(score)*100)
print(score)

이거는 또 계산한 값이 이상한것이었다. 반복문을 돌 때 리스트의 요소가 바뀌면서, 최댓값도 같이 바뀌어버린 것.

import sys
subject=int(sys.stdin.readline()) # 과목 수
score=list(map(int,sys.stdin.readline().split(" "))) # 과목 성적
max_score=max(score) # 최댓값
for i in range(subject):
    score[i]=(score[i]/max_score*100)
print(score)

그래서 for문 돌기 전에 최댓값 변수 할당해서 고정값 줬다.

import sys
subject=int(sys.stdin.readline()) # 과목 수
score=list(map(int,sys.stdin.readline().split(" "))) # 과목 성적
max_score=max(score) # 최댓값
for i in range(subject):
    score[i]=(score[i]/max_score*100)
print(sum(score)/subject)

mean() 이런거 없나…