見出し画像

paizaのスキルチェックのBランクの問題を全て解いてみて

今回は、paizaのBランクの問題を解いて感じたことに絞って記載していこうと思う。
ちなみに、DランクとCランクは再チャレンジも含めれば全て100点を取っているのだが、Bランクはまだ再チャレンジでも100点が取れていない問題が7問ある。Bランクの最後の方の高難易度の問題は今の私には難しすぎた。今は寝かせて、ひょっこり思いついたらまたチャレンジしてみようと思っている。

paizaのスキルチェックに果敢に挑んでいる背景はこちら↓

■感じたこと

Bランクからはほぼ実務レベルのコーディングが求められるのではないかと思った。と、駆け出しエンジニアの私が勝手に言っている。
Aランク、Sランクと比べるともちろん問題の難易度は低いが、

問題(仕様)を細かく読んで理解する
・多次元配列や連想配列を使って、データを扱いやすい形にする
・自由入力で、自主テストをする

ここら辺はCランク以上に求められると思う。

問題(仕様)を読んで理解する

まずは問題文の理解についてだが、Cランクよりは明らかに問題(仕様)が複雑になるので、しっかり問題文を読んで理解する必要がある。そして、書かれている細かい例外を拾っていってコードに落とし込む必要もある。

問題文をどうやって理解するかという点については、もう読解力の話なので私から言えることは特にないのだが、

・1行1行丁寧に読む
・それでもいまいち意味が分からなければ、問題文の具体例を見る
・それでもいまいち意味が分からなければ、実際に想定される入力データと想定される出力データが何か、入力例と出力例を見て、そこから逆に問題を理解しにいく

みたいなことは意識しながら解いていた。

データを扱いやすい形にする

また、Bランクの問題の特徴としては、多次元配列や連想配列を使いこなすことが求められるのではないかと勝手に思っている。
※他の方の解答を見ていないので、実はもっとシンプルな書き方があるかもしれないため、あくまで私の一意見としてで認識をお願いいたします
※多次元配列と言ってもほとんど2次元配列(この表現が適切か自信がないのだが、要は配列の配列)であった感じがする

問題に応じて、多次元配列だったり連想配列のkeyとvalueを、その後の処理で扱いやすいように構成し、そこに入力データを突っ込んでいくことが必要になると思う。
このデータ形成の下準備を元に、メインの処理を書いていくイメージだ。

自主テストをする

最後に、自主テストに関して簡単にまとめる。
Bランクで手堅く100点を狙おうと思うと、コードを書き終えた上で、自分で入力値をランダムで入れて漏れがないか確認し、特にエッジケースも満たせているか確認する必要があると感じた。
実はここがCランクとBランクの大きな違いだと感じている。

Bランクの中でも難易度が低いものについては、Cランクと同じノリでテストもあっさりで解答して100点を取ることはできると思う。しかし、難易度が2000前後になると、さっさと全体のコードを書き終えて自主テストも細かく確認しないと、各問題の想定時間内に100点が狙える渾身のコード提出はかなり難しいと思った。

■余談

正規表現が苦手

正規表現を苦手だ。正直まだよく分かっていないので、その都度調べながら書いている。正規表現を使いこなせたらもっとシンプルに書けるんだろうなと思いながら、自分でも苦し紛れのコードを書いていることが度々あった。
正規表現をマスターする上で参考になった記事や、オススメの書籍があれば是非教えてください。

失敗談

教訓
入力値を自由に入れて、ちゃんとテストをしよう

上記の「■感じたこと」にも書いたし、言っていることが当たり前すぎるのだが、速く解答しようとしてテスト不足での凡ミス減点だけは避けた方が良いと思う。レートが劇的に下がり、結構萎えるので是非お気を付けください。

ちなみに、Cランクと同じノリでテストもほどほどにコードを提出して、しばらく壁にぶち当たっていた時の私の様子は以下のような感じだ。

コード提出直後↓

スクリーンショット 2021-08-01 7.23.28

コードの採点直後↓

画像2

5秒間で人のバイタリティはこんなに変わるのかといつも驚かされた。
10問くらい同じような失敗を繰り返し、やっと自分の失敗の原因に気付けた。結構時間がかかったし、その間はなかなか苦しかった。

これからチャレンジする方に同じような失敗をして欲しくないので(不用意に自分のレートが下がると思ってる以上に萎えるので)、このような各ランクの感想まとめ投稿を書いているという背景もある。
誰かの参考になれば幸いである。

Cランクの問題を全て解き終えた感想についてはこちら↓

Dランクの問題を全て解き終えた感想についてはこちら↓

おしまい。

この記事が気に入ったらサポートをしてみませんか?