백준/기초

[백준][1차원 배열] 4344번 평균은 넘겠지

Snowboarder 2022. 3. 10. 21:38

문제접근

  • 1차원 배열을 사용한다.
  • 리스트를 재 초기화(삭제)한다.
  • 조건에 따라 cnt +1해준다.

문제풀이

내풀이

C= int (input())

for i in range(C):
    A= list(map(int,input().split()))
    Fn = A[0]
    del A[0]
    avg = sum(A) / Fn
    cnt = 0
    for i in A:
        if i > avg :
            cnt += 1
    PER = (cnt / Fn) * 100
    print('%.3lf%c'% (PER,"%"))

다른사람풀이

import sys
input = sys.stdin.readline

test_case = int(input())

for _ in range(test_case):
    data = input().strip().split(' ')
    scores = list(map(float, data[1:]))
    average = sum(scores) / len(scores)

    above = 0
    for score in scores:
        if score > average:
            above += 1

    print(f'{(above/len(scores))*100:.3f}%')
import sys
for _ in range(int(sys.stdin.readline())):
    a = list(map(int,sys.stdin.readline().strip().split()))
    mean = sum(a[1:len(a)])/a[0]
    print('%.3f'%round(sum(map(lambda x:x>mean, a[1:len(a)]))/a[0]*100,4)+"%")
  • strip() :인자로 전달된 문자를 String의 왼쪽과 오른쪽에서 제거합니다.
  • lambda 함수를 사용한다.

숏코딩

for i in[*open(0)][1:]:a,*b=map(int,i.split());print(f'{sum(a*j>sum(b)for j in b)/a:.3%}')