考えて競プロする

プログラミングコンテストの問題をどう考えて解いたかを記録していくブログです。使用言語はPython3

ABC015-B - 高橋くんの集計 を解く

ABC015-B - 高橋くんの集計

 

平均を切り上げで求めよという問題

書き方を知っていれば簡単

 

>>> 1.5//1
1.0
>>> 2.5//1
2.0

上記のように、Pythonの "//" による割り算は、一見切り捨てに見えるが

実は0に向かって丸めているだけだ

 

よって負の数に変換してから "//" による割り算を実行すると

切り上げを行うことができる

>>> -(-1.5//1)
2.0
>>> -(-2.5//1)
3.0

 

提出したコード

# 入力
n=int(input())
l=list(map(int,input().split()))

# バグのないものは集計しないので、"0"の数をカウントしておく
c=l.count(0)

# 出力
print(-(-sum(l)//(n-c)))

 

入力値に "0" が含まれる場合は

平均計算の母数に含めないという指示があることに注意

 

提出結果はACでした
 
平均の切り上げ方法は今回紹介したもの以外のやり方もあるので
気になる人は解説スライドを読むといいかも