こんにちは。iQeda [@iQeeeda] です。
エンジニアが「競技プログラミング」に挑戦することは大事です。
みんなやるべきだと思っています。
以下がオススメする理由です。
- 無駄のない (効率的で高速な) アルゴリズムを考えられるようになる
- コーディング試験対策になる
Google のような大手企業の面接ではアルゴリズム問題が出ることが有名です。
エンジニア能力を測る指標といえるでしょう。
今回は「競技プログラミング」のおすすめサイトを 2 つ紹介します。
駆け出しエンジニアもぜひ挑戦してほしいと思います。
得意な言語で問題を解けばいいと思いますが、
シンプルに記述できる Python のような言語が「コーディング試験向き」とされています。
AtCoder
AtCoder は日本で一番有名な競技プログラミングサイトです。
駆け出しエンジニアはこちらから始めるといいと思います。
娯楽に寄ったコンテストになっています。
Practice
最初は Practice (Welcome to AtCoder) 問題からはじめましょう。
Interactive Sorting という難しめの Practice もありますが、気にしなくていいと思います。
ABC
Practice 問題を解いたら「ABC 」というコンテストの過去問を解くのがオススメです。
コンテストの種類は以下のようなものがあります。
- ABC : 初級者向けコンテスト
- AtCoder Beginner Contest の略
- ARC : 中上級者向けコンテスト
- AtCoder Regular Contest の略
- AGC : 最上級者向けコンテスト
- AtCoder Grand Contest の略
コンテストでは A 〜 F の問題が出題されます。
A が最も簡単な問題で、 F が最も難しい高得点問題です。
どの問題からやればいい?
最初は ABC の A ・ B ・ C 問題をたくさん解けばよいと思います。
こちらに問題がまとまっているので参考にしてみてください。
※ ABC 041 以前は古い問題なのでやる必要がないと言われています。参考までに。
【どこ?】AtCoder の解答の場所
各問題の解説タブを開いて PDF をクリックしてください。
LeetCode
世界的に有名な競技プログラミングサイトは LeetCode です。(英語です)
エンジニア採用に寄ったコンテストになっています。
GAFA などのテック企業で出題された過去問などを 1000 問近く解けたり (無料) 、
模擬試験を受けることもできる (有料) サービスになっています。
LeetCode は非常にオススメですが、
早い段階でデータ構造・ソート知識が問われるので、技術書も一緒に読んだほうがいいです。
【どこ?】LeetCode の解答の場所
Solution
各 Problems ページの Solution タブを開きます。
ここに基本的なアルゴリズムが紹介されています。
しかし主に Java の解答しか載っていないので Solution 画面下のコメント欄を見るか、
次に紹介する Discuss タブを参照するのがよいと思います。
Discuss
各 Problems ページの Discuss タブを開きます。
Most Votes でソートをかけて Tags で言語指定すれば、優れた他の解答を見ることができます。
【参考】Google 入社方法まとめ
皆さん大体 LeetCode やってますね。
お仕事ください!
僕が代表を務める 株式会社 EeeeG では Web 制作・システム開発・マーケティング相談を行っています。 なにかお困りごとがあれば、Twitter DM や Web サイトからお気軽にご相談ください。
カテゴリ「CS」の最新記事