個人的にオススメする競プロの学習フロー
/icons/hr.icon
はじめに
※ 以下の内容は完全に個人的な意見になるのでご了承ください。また、Python で学習することを前提に考えているので他の言語で学習したいという方はそこは自分なりに調べてみてください。
ここでは個人的に何もプログラミングのプの字もわからないという方が競プロを入門するのにどのように学習していけば良いのかを綴っていこうと思います。
/icons/hr.icon
目次
段々難しくなっているので「$ n.まではわかる!」という方は$ n+1.からご覧ください。
/icons/hr.icon
1. 環境構築
最初に躓くだろうポイントは環境構築だと思います。
環境構築に関しては個人的なステップとしては以下のようにやればできます。
1. VSCode をインストールする
2. 拡張機能で Python をインストールする
3. 完成
流石に雑だと思いますがこれでできます。
以下の Qiita の記事がオススメなのでこれを読んでやることをオススメします。
参考
/icons/hr.icon
2. 各種サイトについて
Python での環境が整ったら次に各種サイトの紹介をします。
世界最高峰の競技プログラミングサイトです。日本だと現時点では最も有名なサイトです。
新規登録をしてユーザー登録を行いましょう。
kenkoooo さん という方が非公式で作成された AtCoder の過去問を解くことができる(精進と言ったりします)サイトです。 本当に非公式なのか疑ってしまうくらいすごいものです。ここから自分に合ったレベルの問題を大量に解いていきます。
とりあえず VSCode の環境が整い、これら$ 2つが整えば競プロを始めることは十分できます。
敷居の低い所が競プロの良い所でもあるかなと個人的には感じています。
/icons/hr.icon
3. 標準入出力
競プロはほぼ全ての問題において、以下の流れで出題されます。
1. 入力が与えられる
2. どんな入力に対しても正しい答えを返す(出力する)プログラムを実装する
3. 提出する
例えば以下のような感じです。
1. 整数$ Nが与えられます。$ Nを$ 2倍した値を出力してください。
2. Python では以下のようになります。
code:Python
N = int(input()) # 整数 N を入力として受け取る
print(2*N) # N を 2 倍した値を出力する
Python では出力するために print 関数を用います。
また、掛け算は * によって処理することができます。
3. 提出する
こんな感じで解いていくのですが、入力の受け取り方には様々なパターンがあります。
これをまずは脳死で書けるようになるまで練習した方が個人的には良いと思います。
これの$ 4章に競プロで必要な入力の受け取り方が解説されているのでこれを読みながら自分に合ったレベルの問題を解いてみてください。
/icons/hr.icon
/icons/hr.icon
/icons/hr.icon