この1週間paizaのCランク問題を毎日1問解きました。
Cランク問題を初めて解いたとき中央値よりも1時間以上オーバーしてしまったのがとても悔しかったです。
1週間も解き続けると問題慣れもして解答時間は以前の1/4ほどに短縮しました。
ここで1週間の取り組みをふりかえり、Cランク問題を解く方法を紹介します。
平日1問、土日は2問解いて1週間が経ちました
この1週間、必ず1問はCランク問題を解きました。
平日はあまり時間が取れないので1問だけ、土日はまあ時間あったので2問くらい解いてました。
この1週間プログラミング漬けでしたが、なんだかゴリゴリのエンジニアぽくて「こんな週も悪くない」と思ってしまいましたね。笑
Cランクしか解かなかったので一気にレーティングが上がることはありません。
それでもちょっとずつ右肩上がりなのは嬉しいですね。
ここからはCランク問題を解いていて気づいたことをまとめました。
基礎文法の理解が問われる
Cランク問題は基礎文法力が問われていると思いました。
プログラミングを学ぶと言語問わず、for文や配列・連想配列を学びますよね。
これらはどんな言語でも共通して持っている基礎文法です。
この基礎文法がしっかりと身に付いていると言語なんて関係なくプログラミングができます。エンジニアとして仕事していくにはこの基礎文法を理解していないと活躍できないでしょう。(特にプログラムを書く人は)
問題をこなしていく中でこちらの文法を使いました。(Pythonで解いたためpython用語で記述)
- for文
- continue文
- break文
- if文
- while文
- リスト(配列)
- 2次元配列
- 辞書(オブジェクト, 連想配列)
- 型変換
教科書なのでよく見かける文法ばかりですね。
ちょっとCランク詰まったな〜というときは参考書を読み返してみると良いのかなと思いました。
問題文の読み込みに時間がかかる
プログラミングの文法理解だけでなく文章への読解力も必要だと思いました。
問題はすべて文章問題です。例題や出力結果は与えられているものの読んで理解しプログラムに直すまでちょっと時間がかかります。
ほとんどの問題は簡単な算数で、もし紙で解いていたら一瞬で解けるでしょう。
しかしプログラミング言語になるとデータ構造を意識しながら解かなければなりません。
これが難しくそしてエンジニアとして楽しい点でしょう。
問題を解いて楽しいと思えたらエンジニアとして才能ありますよ!
また読解力がなくても落ち込むことありません。
わたしもそんなもん持ってなくて最初は1時間以上もかかりました。
でも繰り返し解いていると慣れるものでようやく解答中央値から15分程度になりました。
まだ解答中央値以内になったことないので解答者のプログラミング力にビビってます。(汗)
まとめ
Cランク問題を解いて気づいたことを2つ紹介しました。
基礎文法は実務でも必須です。プログラムを書けるエンジニアになりたい場合はCランク問題を解けるようになっておきましょう。
また1度ダメでも悲観することありません。問題は100問以上ありますし反復して問題を解くことで必ず解けるようになります。
一緒に頑張りましょう!