概要
Atcoder AGC029_A(Irreversible operation)を提出したところ、TLE(TimeOut)になってしまうので解決方法について教えていただきたいです。
以下、コードの説明と実行したコードです。
説明
- Wより左にあるBの数を足していく操作をWの数だけ行う。
- その際に、一度足したBは一番左のWを含めてリストから削除する。削除したリストのBの数はtmp_1に追加していく。
- Wがなくなるまでwhileで回す。
変数の説明
- ans→最終的に出力するBの数。
- t→Wのインデックス番号(一番左のもの)
- tmp_1→削除したリストに含まれているBの数の和
- tmp_2→tより左にあるBの数
実行したコード
Python
1 2 3s=list(input()) 4ans=0 5tmp_1=0 6 7while "W" in s: 8 t = s.index("W") 9 tmp_2=s[:t].count("B") 10 ans += tmp_1 + tmp_2 11 tmp_1 += tmp_2 12 s = s[t+1:] 13print(ans)
回答2件
あなたの回答
tips
プレビュー