2019/02/19(Tue)

Paizaにハマりかけてる話

記事カテゴリ: お勉強

相変わらず世の中が寒いんですけど、その割にスギ花粉が飛び始めたりもしていて日々が辛いはしぐちです。気付いたら2月も中旬でした。 僕もなかなか、継続的アウトプットってヤツが続けられないですねぇ……。 このままではいかんなと思ったので雑に記事を書きます。

以前のブログで『やってます』って書いていたRailsチュートリアル、あんなものはとうの昔に完走しました。 その後はオリジナルアプリを作ろうとしているのですが、日々色々脱線しているせいで進捗はダメです。

まぁでもそんなこんなでRailsのコードを書いてる際、『Rails以前にそもそもRuby自体の習得が甘いかも……』と感じることがありまして。 Rubyでコード書かなきゃと思ってやりはじめたのがPaizaのプログラミングスキルチェック

コレおもしろいね!!!!!!

だいぶ前にもPythonやってた頃に少しだけ解いたりはしていたんですが、今あらためてRubyで解いてます。 毎日ではないものの、最近では朝まずは数問解くというところから学習をスタートする日が多くなっています。 先週は1日にだいたいD問題3問、C問題2問、B問題1問とか解いてる感じです。

で、『そろそろA問題にも手を付けてみるか』と思い昨日はじめて解いた結果がこちら。

A017:落ちものシミュレーション

1発で通せたものの、時間がかかったためにスコア79点…。 81点を超すスコアを出していればAランクに上がれたのですが、ギリギリでおあずけです。

で、リベンジと思って今日も解いた結果がこちら。

A009:ビームの反射

はいダメー。 ロジック的には方向性は合ってたはずなんですが、考慮漏れパターンがあったためループの終了条件の設定が甘く、このような結果に。 一応、その後ちゃんと修正して全ケース通るコードを提出できました。

こんな感じで問題を解いているわけですが、これ、とても良い勉強になっています。

『問題解くときにはるりまサーチで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完しかできなくて散々で悔しくて今は過去問解いたりしてるところなんでそっちの方はまだ内緒です。


タイトル: Paizaにハマりかけてる話
記事カテゴリ: お勉強
投稿日時: 2019/02/19(Tue)
最終更新日時:
ha4gu

このブログはITエンジニアのha4guが書いています。
しばらく無職やってましたがそろそろ仕事する気になってきましたんでどこか雇ってください。 Web開発がやりたいです。勉強したぶんRailsがいいんですけどこの際あまり贅沢は言いません。 ポートフォリオはもうちょっと待って(←これをもう数ヶ月は言ってる)。

なおこのブログはまだ構築途中です。ぜんぜんわからない。俺は雰囲気でGraphQLを書いている。

Gatsbyブログ構築 公開ToDo:
  • カテゴリ機能の実装(すべての記事がいずれかのカテゴリ1つに属すようにする)
    • 記事ページでのカテゴリ表示実装
    • カテゴリごとの記事一覧ページ実装
    • トップページでのカテゴリ一覧リンク実装
  • タグ機能の実装(記事に任意の数のタグを付与できるようにする)
    • 記事ページでのタグ表示実装
    • タグごとの記事一覧ページ実装
    • トップページでのタグ一覧リンク実装
  • 記事ごとに登録したキーワードがmetaに反映されるようにする(なってたっけ?)
  • 記事ごとにキーワードを登録する
  • Font Awesomeを使えるようにする
  • Sassを使えるようにする
  • コメント機能の検討(付けるとしたらDisqusが現実的?)
  • サイドバー実装させるかどうするか検討
  • SNS共有ボタンの実装