본문 바로가기

인문학도 개발일지/1일1알고리즘

[알고리즘] 백준 4344 : 평균은 넘겠지 파이썬 풀이

 

 

 

풀이
C = int(input())

for _ in range(C):
    INPUT = list(map(int, input().split(" ")))
    N = INPUT[0]
    AVG = (sum(INPUT) - N) / N
    
    del INPUT[0]    # ★ 첫번째 요소는 삭제 필요
    
    l = []
    for s in INPUT:
        if s > AVG:
            l.append(s)
    list_AVG = len(l)/N

    print(format(list_AVG, ".3%"))

 

 

 

첫번째 요소를 삭제하지 않을 경우(del INPUT[0] 을 하지 않을 경우)의 반례
4 1 2 3 5

 

 

 

다른 풀이
for i in range(int(input())):
    INPUT = list(map(int, input().split(' ')))
    AVG = sum(list_input[1:]) / INPUT[0]
    cnt = 0
    for j in INPUT[1:]:
        if j > AVG:
            cnt += 1
    print(str('%.3f' % round(cnt / INPUT[0] * 100, 3)) + '%')

 


주요개념

리스트의 평균

- 리스트 평균을 구하는 함수는 없다.
- sum(리스트)/len(리스트)

 

 

 

리스트 요소 삭제

- del 객체

- 예시1

>>> a = [1, 2, 3]
>>> del a[1]
>>> a
[1, 3]

 

- 예시2

>>> a = [1, 2, 3, 4, 5]
>>> del a[2:]
>>> a
[1, 2]

 

 

 

퍼센트 서식 지정하기(formatting as a percentage)

- format(숫자, ".n%")
- (숫자 * 100)을 소수점 n자리 까지 표기 

>>> a = 0.235
>>> print(format(a, ".3%"))
23.500%