白駿17211号:いい日が嫌い
質問する
題ショートカットキー>白駿17211号:いい日が嫌い
に答える
注意すべきは、Pythonの四捨五入は「ROUND HALF EVEN」方式、四捨五入の数を上げたり下げたりする場合は同じで、偶数値で四捨五入する「ROUND HALF EVEN」方式です.したがって,単独で実装し,四捨五入関数を用いた.
ex) 0.5-> 0
ex) 1.5-> 2
def roundUp(num):
if num - int(num) < 0.5:
return int(num)
else:
return int(num)+1
def solution():
N, emotion = map(int, input().split())
prob = list(map(float, input().split()))
prob_g = []
prob_b = []
if emotion:
prob_g.append(prob[2])
prob_b.append(prob[3])
else:
prob_g.append(prob[0])
prob_b.append(prob[1])
for i in range(N-1):
prob_g.append(prob_g[i]*prob[0]+prob_b[i]*prob[2])
prob_b.append(prob_g[i]*prob[1]+prob_b[i]*prob[3])
print(roundUp(prob_g[-1]*1000))
print(roundUp(prob_b[-1]*1000))
solution()
コードの改良
より簡単に初期化できます.
def roundUp(num):
if num - int(num) < 0.5:
return int(num)
else:
return int(num)+1
def solution():
N, emotion = map(int, input().split())
prob = list(map(float, input().split()))
prob_g = [1-emotion]
prob_b = [emotion]
for i in range(N):
prob_g.append(prob_g[i]*prob[0]+prob_b[i]*prob[2])
prob_b.append(prob_g[i]*prob[1]+prob_b[i]*prob[3])
print(roundUp(prob_g[-1]*1000))
print(roundUp(prob_b[-1]*1000))
solution()
Reference
この問題について(白駿17211号:いい日が嫌い), 我々は、より多くの情報をここで見つけました https://velog.io/@danbibibi/백준-17211번-좋은-날-싫은-날テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol