4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AtCoder解法メモ作成の支援(問題文のスクレイピング)

Last updated at Posted at 2021-05-01

動機

  • AtCoderの問題を解いたあとにメモを残す際に問題文を併記したい
    • URLを貼る形式だと,問題文の確認にひと手間かかってしまうので
  • 問題文の単純なコピペではフォーマットが崩れてしまうので,なんとかしたい

やったこと

スクレイピングによって問題文を自動取得してマークダウンファイルに保存するコードを書いた。不完全なコードだがそれなりに実用に耐えそうなので,運用しつつ頃合いをみて改修していくつもり。

コードはGitHubに置いた。

Prerequisites

  • python 3.6+
  • BeautifulSoup4
  • markdownify

Usage

ファイル名: get_problem_md.py

単一の問題を取得する場合(例: ABC199のA問題 など)

  • 問題文のurlを引数として与えて実行する
python get_problem_md.py https://atcoder.jp/contests/abc199/tasks/abc199_a

複数の問題を取得する場合(例: ABC199のA問題からF問題まで など)

  • 対象コンテストのいずれかの問題文のurlを引数として与える

  • -r (--range)で範囲を以下のように指定する

    • 例: -r abdf (A, B, D, F問題を取得)
    • 例: -r a-d (AからD問題までを取得)
      • この指定法はa-da-fのみ対応
python get_problem_md.py https://atcoder.jp/contests/abc199/tasks/abc199_a -r a-f

カレントディレクトリ以外にmdファイルを保存する場合

  • -d (--dir)で指定する:
    • 例: -d ./hoge

出力の例

ZONeエナジー プログラミングコンテスト “HELLO SPACE”: A - UFO襲来

出力例の引用始まり


A - UFO Invasion

URL: https://atcoder.jp/contests/zone2021/tasks/zone2021_a

配点 : 100 点

ストーリー

俺はマーフィ。プログラミングコンテストが趣味の MAD HACKER だ。

ある晩、コンテストサイトでいつものように MAD な超絶解答を提出しようとしていたら、街の上空に巨大な UFO が現れた。
突然の事態に世界中は大混乱。楽しみにしていたプロコンも即中止になってしまった。

それから 1 週間、UFO は解読不能のメッセージを発信しながら空中に鎮座している。
俺は、レーティングを上げるせっかくのチャンスが奪われた怒りに震え上がっていた。

あの UFO... 絶対ハックしてやるぜ。

まずは頭を働かせるため、俺はありったけの ZONe を買いに行くことにした。

問題文

長さ 12 の文字列 S が与えられます。S の中に ZONe という文字列は (連続する部分文字列として) いくつ含まれるでしょうか?

制約

  • S は英字からなる長さ 12 の文字列

入力

入力は以下の形式で標準入力から与えられる。

S

出力

答えを出力せよ。

入力例 1

abcdZONefghi

出力例 1

1

S の 5 文字目から 8 文字目までが ZONe となっています。

入力例 2

ZONeZONeZONe

出力例 2

3

入力例 3

helloAtZoner

出力例 3

0

S の 8 文字目から 11 文字目までが Zone となっていますが、これは ZONe ではありません。


出力例の引用終わり

今後やりたいこと

  • 空白行の除去 (マークダウンでは複数(n>2)の空白行は無視されるので問題はないが)
  • 数式への対応
4
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?