[BOJ] - 4344



問題4344


大学生の新入生の90%が、自分がクラスにいる平均数を超えたと考えている.あなたは彼らに悲しい真実を伝えるべきだ.

入力


第1行は、試験例の個数Cを与える.
2行目から、各テストケースには、学生数N(1≦N≦1000、Nは整数)の最初の数字が与えられ、次いでN名の点数が与えられる.分数が0以上、100以下の整数.

しゅつりょく


それぞれの場合、平均値の1行を超える学生の比率を四捨五入し、小数点を3位に出力します.

コード#コード#

num = int(input()) # 테스트 케이스 수

for i in range(num):
    score = list(map(int,input().split()))
    average  = sum(score[1:])/score[0] # 0번째 숫자는 n이라서
    
    count = 0
    
    for j in score[1:]:
        if j > average:
            count += 1 # 평균보다 큰 숫자의 개수 
            
    percentage = count/score[0]*100 #비율 
    
    # round(a,n) a를 소수점 n번째에서 반올림 
    # a = 3.1191 -> round(a,2)   -> 3.12
    
    #반올림해 소수점 셋째자리까지 출력.
    print("%.3f" %round(percentage,3)+'%')
    

    

説明:


  • 初めて試験用例を入力した後、n入力後、n個の点数を入力しようと思って悩んだが、実は不要な部分だった.考えが難しすぎて、

  • 出力の時は数字が合っていたのですが、白準ではずっと間違っていたので何と言っていたのか、四捨五入部分を外していたので間違っていたのですが、

  • 四捨五入はround(a,n)であり、aを小数点nから四捨五入する.

  • 変数を宣言するときにlistは使用できません.変数名が異なります.