백준 1546번: 평균
2023. 8. 25. 22:26ㆍ개인활동/코테
반응형
주어진 점수에서 최대값을 이용해 점수를 조작하여 평균을 다시 구하는 문제이다.
n = int(input())
s = list(map(int, input().split()))
s_max = max(s)
new_s = []
while s:
i, *s = s
new_s.append(i/s_max*100)
print(sum(new_s)/n)
기존의 데이터를 삭제하지 않는 방향이 가장 좋은 우리로서는 새로운 리스트를 만들어서 변형한 데이터를 넣어주는 것이 가장 좋다.
코드가 좀 길긴 했지만 2트만에 통과
숏코드도 한번 보고 넘어가자.
n,*l=map(int,open(0).read().split())
print(sum(l)*100/max(l)/n)
나도 첫줄처럼 input을 받고 싶지만.. 이상하게도 pycharm에서 open(0)을 사용하면 input 받는 것이 끝나지 않아서 저런 코드로 테스트를 시도하려면 할 수가 없다
왜 그러는 걸까?
여튼. 출력문의 내용은 계산을 한번에 다 때려 넣어버린 것인데, 실제로 저렇게 계산하면 어떻게 될지 곰곰히 생각을 해보았다.
수학적으로 수식을 작성해보면 max값과 *100은 공통적으로 가지고있기에 이를 이용해 분배되어있는 l의 요소들을 다 합쳐주면 결국 sum(l)이 나오게 된다.
간단한 수식.
수학을 잘해야 하는 이유인 듯 하다.
반응형
'개인활동 > 코테' 카테고리의 다른 글
백준 2743번: 단어 길이 재기 (0) | 2023.08.27 |
---|---|
백준 27866번: 문자와 문자열 (0) | 2023.08.27 |
백준 10811번: 바구니 뒤집기 (1) | 2023.08.24 |
백준 3052번: 나머지 (0) | 2023.08.23 |
백준 5597번: 과제 안 내신 분..? (0) | 2023.08.23 |