ABC237D
ABC237D の解説
解答コード
https://atcoder.jp/contests/abc237/submissions/28965017
問題
1からNまでの数字をリストに挿入していく問題です.
各数字ごとに"L" or "R" の文字列が与えられて,
Lの時は直前の数字の左に,
Rの時は直前の数字の右に数字を挿入していきます.
解説
0, 1, ,2, ..., Nの順に挿入していくのではなく,逆順のN, N-1, N-2, ..., 0 を挿入して実装しました.
公式解説ページのユーザー解説にある「両端キュー」の発想はなかった...> <
まず,dequeをimportします.
標準入力を読み込みます.
deque には,はじめNが含まれています.ここにN-1以降の数字を挿入していきます.
N-1の挿入について考えます.文字列が"L"であれば,N-1の左側にNが挿入されることを意味します.[N] -> [N-1, N]
つまり,今,逆順で考えていますので,文字列が"L"のとき,Nの右側にN-1を挿入していきます.
この点に留意して,キューに数字を追加していきます.
最後にdequeをlist型にもどして,出力します.
リストにせずともで同様の結果になりますが,明示的にansに代入しています.
以上,ABC237Dの解法でした.