Paizaにハマりかけてる話
相変わらず世の中が寒いんですけど、その割にスギ花粉が飛び始めたりもしていて日々が辛いはしぐちです。気付いたら2月も中旬でした。 僕もなかなか、継続的アウトプットってヤツが続けられないですねぇ……。 このままではいかんなと思ったので雑に記事を書きます。
以前のブログで『やってます』って書いていたRailsチュートリアル、あんなものはとうの昔に完走しました。 その後はオリジナルアプリを作ろうとしているのですが、日々色々脱線しているせいで進捗はダメです。
まぁでもそんなこんなでRailsのコードを書いてる際、『Rails以前にそもそもRuby自体の習得が甘いかも……』と感じることがありまして。 Rubyでコード書かなきゃと思ってやりはじめたのがPaizaのプログラミングスキルチェック。
コレおもしろいね!!!!!!
だいぶ前にもPythonやってた頃に少しだけ解いたりはしていたんですが、今あらためてRubyで解いてます。 毎日ではないものの、最近では朝まずは数問解くというところから学習をスタートする日が多くなっています。 先週は1日にだいたいD問題3問、C問題2問、B問題1問とか解いてる感じです。
で、『そろそろA問題にも手を付けてみるか』と思い昨日はじめて解いた結果がこちら。
1発で通せたものの、時間がかかったためにスコア79点…。 81点を超すスコアを出していればAランクに上がれたのですが、ギリギリでおあずけです。
で、リベンジと思って今日も解いた結果がこちら。
はいダメー。 ロジック的には方向性は合ってたはずなんですが、考慮漏れパターンがあったためループの終了条件の設定が甘く、このような結果に。 一応、その後ちゃんと修正して全ケース通るコードを提出できました。
こんな感じで問題を解いているわけですが、これ、とても良い勉強になっています。
『問題解くときにはるりまサーチでAPIについて確認しつつ問題を解いて提出、 通ったのを確認した上で、もっと効率的な書き方ができないかといろいろググりながらリファクタリングを行う』 っていうスタイルでやっているんですが、 『マジか!! そんな書き方ができるのか!!』っていう驚きが毎日割とあります。
たとえば、こういうのを知りませんでした。
a, b = gets.input.map(&:to_i)
この、a, b =
って書けるところ。これはPaiza解きはじめてすぐの頃に知ったんですが衝撃でしたね。
それ以降はたぶん毎日使ってます。
あとは最近知ったのが、似たところでこういうパターン。
a, b, c, d = 4.times.map { gets.to_i }
これで1行にひとつ数字が書かれている4行の標準入力から、4つの変数に数字を格納できるはず。 なにこれ便利。これまでは普通に4行gets書いてたんですけど。
というように、狙い通り学びが多いです。 この調子でAランク、そしてSランクを狙って頑張るぞい。
あと、実のところAtCoderもやりはじめてはいるんですが、初参加したABCでABの2完しかできなくて散々で悔しくて今は過去問解いたりしてるところなんでそっちの方はまだ内緒です。
記事カテゴリ: お勉強
投稿日時: 2019/02/19(Tue)
最終更新日時: