先日B問題に初挑戦しました。
時間内に解き切ることはできなかったものの初めて解けたので嬉しかったです。
今回は paiza Bランク問題を初挑戦した感想をまとめてみました。
解けないこともない
解いて最初に思ったのは手も足も出ないような超絶難しい問題ではないこと。
自分の中でBランク問題を高く見積もり過ぎていたようで、実際にやってみると解けないこともありませんでした。
問題文を理解できるし、解き初めて10分程度でおおよその解き方が分かりました。
配列、連想配列を使いこなせるレベルであれば挑戦してみる価値あると思います。
Bランク問題は応用要素が強い
Cランク問題が基礎レベルであればBランク問題は応用レベルでしょう。
そのためCランク問題ほどすらすら解けないと感じました。
私の場合だと最初の10分程度で解き筋が分かったものの、テストの部分で詰まりました。1つ目のテストは解けても2, 3個目のテストは通らない。
1つ目のテストにしか適応しない処理を書いてしまいちょっと躓きました。
その日は1時間程度悩み別の日に解き直すことにしました。
数日寝かせて再度準備が整ったところでノートに整理したところ躓きポイントを解消できました。
コード量は50行程度
B問題になるとコード行が100行くらい書くかなと思いましたが今回の問題では50行程度でした。
B問題でも100行くらいで書ける処理量と予想します。
詰まったときは紙に書き出すのがおすすめ
B問題レベルになると問題文の文章量が増えます。
私も何度も文章を読み返しコメントアウトを使ってエディタに文章を移しました。
1番効果があったのは文章を図にしたり、処理内容を自分なりに書き換えたりして書き出すことでした。文章を読んでいるだけでは分かったつもりになっていることもしばしばあります。
書き出すと読んでいたときに分からなかった発見もできました。
めんどくさく感じるかもしれませんが、書き出した後から作業が格段に早くなったので案外効率的かもしれません。
まとめ
今回はBランク問題を初めて挑戦した感想をまとめました。
想像より手に届く位置にあって安心しました。
Cランク問題よりも難しい点は考え方の部分だと思いました。
- 要求された処理をコードで表したいときどんな文法を使うと良いか?
- 汎用性があるコードになっているか?
これらを意識して問題に望むと解きやすいかなと思いました。
Bランク問題でも使う文法は一緒です。
配列や辞書のメソッドを駆使して解きましょう。
私もB問題を時間内に解けるように頑張ります。