A問題 Haiku
1 2 |
s = input() print(s.replace(',', ' ')) |
区切り文字「,」を含んだ文字列を空白区切に変える問題。
replece()関数を使うことで区切文字を変えることができる。
“s.split(”)” とすると、返り値はリストになる。
B問題 Sum of Three Integers
1 2 3 4 5 6 7 8 9 |
k,s = map(int, input().split()) #z = s-x-y ans = 0 for x in range(k+1): for y in range(k+1): z = s-x-y if 0 <= z <= k: ans += 1 print(ans) |
x+y+z = sとなる組み合わせを全て調べようとすると3重のループとなり、計算時間が足りなくなります。
そこで、z = s -x-y と変形し、0~kの間にzが存在するかを調べるようにします。
これにより、2重ループとなって計算量を減らすことができるので、制限時間内に間に合います。
正直、解説を見てもちょっと腑に落ちない感があるのですが、計算量を減らすことを考えなければならないですね。
コメント