はじめに
PaizaのSランクスキルチェック問題を20問ほど解きました。
Paizaのスキルチェックでエンジニアの能力が測れるのかは賛否両論ありますが、SランクになれないエンジニアよりもSランクになれるエンジニアの方が優秀なのは確かです。
Paiza就活をするなら出来るだけSランクになっておいた方がいいのは間違いないでしょう。
Sランク問題は複雑で長い処理を正確に記述することが求められることが多いAランク問題に比べ、知識とひらめきがあれば実装自体はシンプルに済む問題も少なくないです
この記事では、Sランクスキルチェック問題を解く中で必要だったアルゴリズムを紹介します
Sランクで利用したアルゴリズム
一問でも100点回答出来ればSランクになれるので、
どれか一つ完璧にしてからスキルチェックにブルートフォースすればSランクになれるということになります
- 幅優先探索, 深さ優先探索
頻出 - 再帰関数
必須ではないが、覚えると実装がすごく楽になる問題がちらほら
実務では敬遠されがち - メモ化再帰
深さor幅優先 + 枝狩で解ける問題もある - トポロジカルソート
- UnionFind木
UnionFindを使う問題はUnionFindを使う発想が出来れば実装は簡単なパターンが多いのでおすすめ - 数学
少数型の誤差最小化とか、領域判定とかのテクニックがたまーに
おわりに
難易度~2100くらいまでの問題はひとつのアルゴリズムがあれば解けるような問題ばかりでしたが、難易度の高い問題になると複数のアルゴリズムの組み合わせや改造が必要な問題もちらほら出てきました。
本当はS問題を全て解いてから記事を書きたかったのですが、解説がなく、わからなかった問題を解けるようになるまでに無限の時間がかかりそうなので早々に挫折してしまいました。
競プロ精進目的なら競プロのサイトの方が良いです(自明)
下限年収の高いスカウトが気持ち増えた気がします