どうもmizukiです、炎上しているプロジェクトの事を考えたくないので休みの日はpaizaのスキルチェックで現実逃避をしています!
現在ランクBのレーティング1400台です。
スキルチェックを行う際のコツ
半分自分への備忘録。if文の複数の条件分岐をしっかり覚える。
慣れる為に最初はD~Cランクをひたすら回す
入力を受け取って、それを加工して出力するまでの流れを何度も繰り返して覚えると楽でした。
僕の場合は言語がPHPなので、入力が空白で区切られていた場合はexplodeを使い配列に収納し、邪魔な改行や空白があればtrimで消す動きがテンプレになっていたので、それらの関数の使い方を覚えたらスムーズに問題を解けるようになりました。
explode — 文字列を文字列により分割する
https://www.php.net/manual/ja/function.explode.phpより引用
trim — 文字列の先頭および末尾にあるホワイトスペースを取り除く
https://www.php.net/manual/ja/function.trim.phpより引用
メモ帳を必ず用意してから解く
問題の条件をメモ帳に書きながら解くと無駄なスクロールが減り安定しました。それまでは問題を解きながら画面上部までスクロールしていたので結構ロスしていました。
紙面で計算した方が早い場面もあるので、とりあえず用意しておくと便利。
体調が悪い挑戦するのは止めておこう
多少腹痛があるけど始めたら、見事に痛くなりました(1敗)体調管理は大事!
if文での条件分岐を極めておく
「●●且つ★★(複数)ではない文字」をifで判定しようとしたら、見事にできなかった。JavaSilverを取った時にかなり学習したんですけど完全に忘れていました。基礎力が無いとダメだと痛感。
こんな感じのifを書いて、AND以降が必ずTrueになっていたので上手く動かず、ifをネストして無理やり通しました。確か1行で条件判定の優先順位を上手く使えばできたような…。
後半がOrになっているので、必ずどれかがFalseになる
ガバガバなので今度直す↓
if( $str == "●●" && $str != "★" || $str != "★★" )
全部Andにすればよかった
if( $str >= "●●" && $str != "★" && $str != "★★" )
ifは実務でも使う事が多いので、極めれば極めるほどリターンがありますね。
スキルチェックで面白かった事
炎上プロジェクトで行っていた糞ムーブと同じ事をしている
時間制限があるので、以下のような悪循環に陥る事がありました。
時間制限があるので焦る
↓
急いでコードを書く
↓
バグる
↓
なんか良くわからない事になる
↓
全部消してやり直す
↓
間に合わない
この動きは炎上案件で休日出社して残業してるときに良くやってたな~、焦ると糞コードが出来て余計に時間がかかるのが実務と同じで楽しかったです。
サクサクコーディングが進む時は本当にスムーズに100点が取れるので、焦った時に悪循環から抜け出せるように頑張ろうと思いました。
実務では役に立たないと思ってたけど、役に立ちそう
実務じゃどうせ役に立たないんだろうなーとか最初思ってましたが、結局やっていることは「課題の解決」なので、すべて地続きでした。持っている知識で素早く正確にコーディングするための基礎力は間違いなく伸びるので、これからも続けて行きます。
まとめ
スキルチェック楽しい!競技プログラミングにも少し興味が出て来たので、スキルチェックのAランクからSランクが簡単に解けるようになったら挑戦します。
ガバガバ要件定義から頑張ってコーディングしたら後出しで仕様変更連打される事も無いので、スキルチェックは公正で楽しいなぁ(白目)精神状態がもう少し良ければ、スコア伸びそうなので、なんとか炎上を鎮火させたい!明日もコーディング頑張りましょう!!
コメント