電波ビーチ

☆(ゝω・)v

AtCoderのABC|ARC|AGCのテストケース引っ張ってくるやつ

この前かいたこれを改良しました。 or3.hatenablog.com

https://github.com/halllllll/YATTEMITA/tree/master/nanika/AtcoderThousandFungos

改良っつうかロジックはほぼ同じで、オプションでパスとどのレベルの問題を落とすかをつけただけです。docopt初めて使いました。

issueにも書きましたが一部の問題はテストケースを落とせませんでした。bs4での探し方で解決できるんでしょうがめんどくさくて直してません。そのうちやるんじゃないでしょうかね

Atcoder Beginner SelectionをGoで解いた

qiita.com

これですね。Qiitaのほうでは各言語で解いてみた記事がどんどん上がっています(さすがにもう勢いは終息した)

当然Goで解いた記事なんてとっくの昔に出ているのでn番煎じなんですがたまにはコードかかんと、ということで。n番煎じなのでとくにここで一問ずつコード晒したりはしません。やったっていう報告だけです₍₍(ง˘ω˘)ว⁾⁾AtCoder

All Submissions - AtCoder Beginners Selection

最後の問題でミスってるのはYes/NoとすべきところをYES/NOでやっていたせいです。。ABC083B - Some Sumsを二回解いているのはstringsで各桁ずつ計算したやつと、qiitaでも解説があるように10で割っていったのを足していくやつです。最初のは練習がてらやりました。

AtCoderのコンテストに最後に参加したのはもう二ヶ月以上前でした。。次回は時間がとれるかな。。。

Debian環境をつくる VirtualBox編

前回、DockerでDebian環境を作りました。しかし一般ユーザにssh接続できないという問題に直面し、どうしてもrootログイン・パスワード認証禁止の環境が必要になったため、Dockerを捨てました。これからはVirtualBoxでやっていく。

続きを読む

Dockerにmacからssh接続

めちゃくちゃハマったので。。

続きを読む

ABCから各問題のテストケースとってくるまで自動化

環境はそろえたからやれDo it

最近はモチベが虚無になってしまい、PCすら触らないままダラダラと過ごしていました。なんか太った気がする

先日気の迷いからpaizaをこれまた久しぶりにやりました。ログみたら4ヶ月くらいログインすらしてなかった模様

金に目がくらんだのですが、びっくりするくらい書けなくてつらくなったのでAtcoderBegginerContestを埋めようと思いまして。

わたしはVSCを使ってカラムの右側に問題の入力、左側でコードを書き、ターミナルと出力を表示させてリダイレクトで入力を流し込んで結果を見てみる感じのやつをやってます。雰囲気はこう(出力してませんが) f:id:or3:20180310135911p:plain たいてい問題なんてブラウザ開きながらやるのでテストケースの切り替えはそのたびにコピペしてる感じです。いまのところそんなに不便はないのでこのスタイル。

で、埋めていくにあたり、最初からまとまったディレクトリがないと途中でモチベが虚無を越えてしまうと思い、こんな感じの構成を自動化するやつを書きました。

f:id:or3:20180310140411p:plain

自動化っていうとプログラマっぽいし、30分かかる作業を10秒で終わらせるために1時間かける!みたいな話はカッコよくて憧れがあったのです。結局10時間くらいかかった上に実行も一度限りなので、ハナから手作業でやったほうが早かったというオチがありますが。。

github.com

知見

BeautifulSoupだけです。最初は各問題のページを直接アクセスしてスクレイピングしようとしていたのですが、atcoderのurlの命名規則がどっかで変わる(abc001とか見ると末尾がabc001_1の一方、089だとabc089_aとアルファベット(問題の難易度)になってる)という発見があり、統一されたurlのcontests/abcxxx/tasksのページからリンクをたどる形にしました。 htmlのタグやクラス命名規則も何度か変わってるっぽくて、同定するのが難しく、結局「入力例」と書かれている場所を探してそこからテストケースを探すという力技で切り抜けました。そこらへんはソースを見れば一発でわかると思います。

基本的にBeautifulSoupをネタにした記事はそのへんに大量に転がっているのですが、(pythonのライブラリだとほぼ全部そうだと思ってますが)公式ドキュメントはわからないよう作ってあるとしか思えないので使ってません。これがpythonのZENってやつでしょうか。。。

あと初めてpythonディレクトリ操作みたいなのをやりましたがめちゃくちゃ簡単でいいですね。

お膳立てはした。やれ

残念ながら作り終えた段階でモチベがなくなったので無理です。AOJバージョンでも作ろうかな。。。

Debian環境をつくる Docker編

Debianが必要になったのでやります。入れる候補はなんでもよくて、実機である必要すらないのでさくらサーバでも別PCでも仮想環境でも構わんのですが、使ったことないっていう理由だけでDockerでやってみます。

続きを読む