LoginSignup
1
1

ABC問題と解説の検索サイト

Posted at

はじめに

AtcoderProblemsを眺めて
 「あの問題はどこだったかな」
となったことはありませんか?

今までは問題のタイトルから探し物の断片を紐づけてしらみつぶしに探していました.
不便が過ぎるのでさすがに解法の類題をまとめたサイトくらいあるだろうと思い調べたところ,投票でタグをつけて問題を分類するサイトや特定解法の問題を集めたQiita記事はありましたが,キーワード検索して参照するツールは調べた限りなさそうでした.

ないものは自分で作りましょう.
タイトル,問題文,公式解説の語句を検索するWebアプリです.

アプリのベースはtamocoさんのアプリを使わせていただきました.
引用元:index.htmlだけでCSVを検索するシステムを改善する

コードと公開先

Webアプリ

image.png

ソースコード

機能

主機能

・文字を入力しその文字がタイトル,問題,解説のいずれかに存在すれば,
 該当する問題リンクをカード形式で表示する

その他機能

・コンテスト番号で絞り込み
・A~G問で絞り込み
・左上ボタンもしくは直接数字を入力してページ遷移
・Reverseボタンでカードを逆順表示

検索ワード例

セグ,二分探索,dfs,DFS,ダイクストラ,キュー,dp,Mex,Tree,
グリッド,文字列,クエリ,確率,文字列 S,高橋,青木,

使い道

・解法から問題への逆検索が容易
・類題をまとめて表示できる,苦手分野などの練習に便利
・うろ覚えな問題を探しやすい(時期をざっくり絞り,登場人物,題材,解法などから調べられる)
・コンテスト中,類題を探して自分のコードを参照できる

注意

・ABC200~344までしか対応していない
完全一致させる必要がある. スペースや全角半角,大文字小文字などのブレには対応していない(例えば,bitDP, bit DPで検索結果が変わる)
・andやor検索には対応していない

制作過程

始めはキーワードを指定してスクレイピングしていました.

アクセスに間隔を設ける必要があるため時間がかかるのがネック,,
予め問題情報をcsvファイルにまとめておいて,ローカルにアクセスすればいいのでは?
とりあえず,スクレイピングして得られたデータをcsvに放り込むコードを作成.

生成したcsvファイルimage (4).png

git上でcsvが文字化けしていたので修正

csvファイルを検索するツールってないのか?と思い調べたらこちらの記事を発見
Web制作の知識は皆無なのですごく助かりました.tamocoさんありがとうございます.

こちらをベースにちょこちょこ改変して完成!

まとめ

とりあえずある程度のものはできたと思います.
時間があればもっとよくしていきたいけど,結構満足しちゃったので
誰か自分の代わりにもっといいの作ってください

追加したい機能
・スペース,大文字小文字を許容する
・ARCまで収集先を広げる.
・コンテスト毎に自動更新
AtCoder Problemsみたいにユーザ参照ができるようにする
・加えて自分が解いた問題に色を付けるもしくは検索結果から弾く

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1