TIL 27|平均値を超える割合を求める(標準4344 python)


# 문제풀이 

C = int(input())
ans = []

for _ in range(C) :
    num_list = list(map(int, input().split()))
    avg = sum(num_list[1:])/num_list[0]
    cnt = 0
    for score in num_list[1:]:
        if score > avg:
            cnt +=1
    rate = cnt/num_list[0]*100
    ans.append(rate)

for rate in ans :
    print(format(rate,'.3f')+'%')

1.エンクロージャの数と数の配置を入力します。


  • 入力された配列は、繰り返し文を返すためにリスト形式で保存されます.
  • 2.点数の合計と平均数を求める。


  • sum(num list[1]:):配列の[0]インデックス値の数字は、スコアではなく学生数を表します.この数を除いて,[1]の最初の値から最後の値までの和を求める.
  • の点数と学生数で割って平均を求める.
  • 3.各点数を平均数と比較し、平均以上の生徒数を求める。


  • 点ごとに平均以上になると、cntが追加されます.
  • 4.計算値を配列に格納し、行単位で出力します。



    1行あたり
  • 値が出力されても、答えとみなされます.入力も出力も一度に複数の値を完成させたいので、配列とfor文を使用して出力します.
  • 小数点第3位にマークされた条件に基づいてformat関数を用いた.
  • 新しいコンセプト

  • 入力の数を受信する方法について、新しく理解しました.Cの値を受け取ったら、for文をrange(C)に回し、配列を入力します.
  • の複数の値を一度に出力するために、これらの値を配列に入れて文出力する方法を試みた.
  • round()とformat()および小数点の3番目のビットを表示するにはround関数を使用しますが、表示する数字が0の場合は自動的に数字を省略します.逆にformat()では、表示する数字が0であっても桁数を調整します.
  • で印刷する場合、文字列を斑点(,)で接続すると、真ん中にスペースがあります.出力中に「%」が小斑(,)に接続され,答えを確認できず,+接続文字列を用いた結果,答え確認となった.
  • 入出力方式の詳細も見逃せない.
  • https://www.acmicpc.net/problem/4344