ABC #055 を python で解いてみた!
おはようございます。
朝の準備体操に、AtCoderの#055の D問題をときました。
D: Menagerie - AtCoder Beginner Contest 055 | AtCoder
D問題が解けるようになってきたので、楽しくなってきました!!
でも、よくない傾向なのは、最近はDjangoが少し辛くなってきていて、AtCoderの問題を解く方に逃げてしまうことなんですよね..
朝と晩に1題ずつ解くことにして、その他はDjangoに時間を回すようにしようかな。
問題D
from copy import deepcopy print("--入力--") N = int(input()) statement_first = input() statement = statement_first + statement_first[:2] animal_arrange = [["S", "S"], ["S", "W"], ["W", "S"], ["W", "W"]] animal_final_arrange = [] for animal_pattern in animal_arrange: i = 0 while i <= N: if animal_pattern[i:] == ["S", "S"]: if statement[i+1] == "o": animal_pattern.append("S") elif statement[i+1] == "x": animal_pattern.append("W") elif animal_pattern[i:] == ["S", "W"]: if statement[i+1] == "o": animal_pattern.append("W") elif statement[i+1] == "x": animal_pattern.append("S") elif animal_pattern[i:] == ["W", "S"]: if statement[i+1] == "o": animal_pattern.append("W") elif statement[i+1] == "x": animal_pattern.append("S") elif animal_pattern[i:] == ["W", "W"]: if statement[i+1] == "o": animal_pattern.append("S") elif statement[i+1] == "x": animal_pattern.append("W") i += 1 animal_final_arrange.append(animal_pattern) animal_final_arrange_copy = deepcopy(animal_final_arrange) print("--出力--") counter = 0 for animal_arrange in animal_final_arrange_copy: if animal_arrange[:2] == animal_arrange[N: N+2]: animal = "" for animal_string in animal_arrange[:N]: animal += animal_string print(animal) else: counter += 1 if counter == len(animal_final_arrange): print(-1)
冗長になってる気もしますが、whileで回しているので輪っかの最後の方は複製せざるを得ませんでした。
他にうまいやり方があるのかな...
それはともかく、一応は正しく動きます。
条件を満たすものが全通り出力されるようにしてます。
〜Test〜
うまくいっていますね〜
それでは!