※詳細とあるIT企業のインフラエンジニアWindows/Linux両方使います。趣味でソフトウェアやWebアプリを作ってます。これらはすべて本業とは関係のない副産物です。連絡はTwitter(s3os7a)へ。※本ブログの内容はすべて個人の見解であり、所属する企業とは関連ありません。※詳細とあるIT企業のインフラエンジニアWindows/Linux両方使います。趣味でソフトウェアやWebアプリを作ってます。これらはすべて本業とは関係のない副産物です。連絡はTwitter(s3os7a)へ。※本ブログの内容はすべて個人の見解であり、所属する企業とは関連ありません。BlogインフラエンジニアしらせのIT遊びブログ。中小企業のIT担当者に有益な情報をお伝えしたい。22:06:27Category:プログラミングお疲れ様です。新年あけましておめでとうございます。今年もよろしくお願いいたします。アルゴリズム実技検定」に参加してみました。遅いですがレビューを書いてみます。問題の手ごたえまとめアルゴリズム実技検定とはAtCoder株式会社が2019年12月から開催しているプログラミング能力を図るための実技検定です。アルゴリズム実技検定」のページをご覧ください。受験方法は2種類あり、全員同一の時間で参加するリアルタイム受験と、リアルタイム受験終了後自分で開始時間を選択して参加できる通常受験です。仕事もしている傍ら、なかなか都合が合わない人もいると思います。検定時間はいずれも5時間と長丁場ですが、開始時間を選べるのはうれしですね。23:59)ここで注意なのが(もちろん検定ページにも記載はありますが)リアルタイム受験者と通常受験者で有利不利が発生しないよう、問題や内容に関する事についてはSNSも含めて指定された日時まで口外してはいけないルールになっています。受験結果いつものコンテストではC#を使っていたのですが、文字列の操作や大きな数値の計算、Linqを知らないなどで時間を使ってしまうことがネックでした。そこで今回は志向を変えてPython3(3.4.3)で挑戦しました。配点を見るとわかりますが、問題A~Fの6問が正解でした。(Gを解くかHを解くかブレているうちに時間が終わってしまいました。第一回の過去問もすでに公開されていますので、内容についてはこちらから確認できます。Number?入力値を文字コードに変換して比較すればOK単なる文字列の操作。Down1つ前に入力された数値と今入力されている数値を比較するループを作ればOK特に引っかかるポイントは無かった。Third入力された値を配列に入れて数値にしてソートするだけ。ソートをどうやるか、言語によって変わる気がする。Duplicated?1から順に格納された数値の1つが変わってしまっている問題。順番もバラバラに入力されているのでちょっと面倒。この辺りから問題の質が変わりました。入力された数値を集合で考えないとダメですね。ここも選択する言語によって難易度が変わる気がします。<私の考え方>1.入力値をすべて数値にして配列に入れ、事前にソートしておく。ー配列A2.入力された値と同じ個数で1から順に正しく格納された配列を作っておく。ー配列B3.配列Aと配列Bが同じならCorrectを表示して終了。なければ処理4以降へ4.配列Bから配列Aを引いた残りを求める(setを使って抜けている数値が出る)ーx5.配列Aの合計+xの合計からから配列Bの合計を差し引くと配列Aに余分に追加されている数値が出る。Restoreこの問題は正直力業でした。2次元配列を作ってフォローしている場合を1していない場合0としてifelif分岐で計算し尽します。Pythonの配列初期化で時間をつぶすというミスをしましたが、引っかかるとすると「フォローフォロー」の処理かと思います。自分がフォローしていないけど、今フォローしている相手がフォローしている人を1つのループでフォローの処理をしてしまうと、以下の制約に違反します。フォローする」なので、フォローフォローの処理の際はいったん新たにフォローするユーザを数値2(仮フォロー)として設定し、最後の処理で数値1(フォロー)に変えるという手間がありました。Sort正規表現の問題でした。Sellingこの2問を残して2時間弱の余裕があったのですが正解には辿りつけませんでした。問題Gは行列?の問題でしょうか?数学を知らない私の頭では解にたどり着けませんでした。結局スキップしました。問題Hにも1時間弱時間を使いましたが、テストケースの19番以降で時間超過になってしまいどうしても無理でした。問題Hは1つの配列で処理すると時間が掛かるとわかったので途中で奇数と偶数用の配列を用意する方向にしました。これで、セット販売の際には奇数の最小値(Min)を引っ張ってくるだけで計算が終わると考えました。これでも実行時間超過でテストケースは満たせませんでした。まとめアルゴリズム検定という名前だけあって、もっとソートアルゴリズムとか二分探索とか再帰とかを使うような問題を期待していたのですが、AtCoderのいつものコンテストみたいにプログラミングというかテクニックに偏っている気がして期待外れでした。(もしかしたら後半の問題で出ていたのかもしれませんが。結局最後まで問題にたどり着けていないし実力が無いと言われればそれまでなのかもしれません。あとは数学をちゃんと勉強していないとダメですね。出直してきます(;^ω^)受験された皆さんおつかれさまでした。fsbblog.jp。