紙一重の積み重ねスマートフォン用の表示で見る紙一重の積み重ねアラフォーのエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。rubyはじめにAtCoderの過去問をA問題から穴埋め中です。普通に解いてACだった問題を、もっと短くコード書けないかと思い、select使ったらWAだったのでメモします。解いた問題atcoder.jp最初に書いたコード(AC)これでACだったんですが、モッサリしてるコードです。}endリファクタ1回目(WA)要素の数を2で割った余りが1の要素を出したらいいじゃない、と思い書いたコードがこちら。1}正方形の場合、全部帰ってきてしまうのでダメ。5555selectではなく、findならACになります。【メモ】selectとfindは動きが違う考えるまでもなく、Rubyのメソッドが手に馴染んでないなと感じたので整理。select:条件に合致する要素をすべて配列で返す2で割り切れる要素を配列で取得する。6]ちなみに、find_allでも同じ。6]find:条件に合致する最初の要素を返す2で割り切れる要素を取得する。2detectでも同じ。2リファクタ2回目(AC)ということで、正しいリファクタリング結果はこちら。1}正方形の場合でもOK。55おわりにACしたコードでも、もっといい解法がないか考えたり、他の人はどんなコードを書いているか、自分なりに試行錯誤できるのがAtCoderの良いところですね。A問題をすべて埋められるように、がんばります。はてなブログProSIerで働く36歳のエンジニアです。自社WEBサービスの開発・AWSのインフラ構築を行っています。なれる最高のフルスタックエンジニアを目指して、RailsやAWSをこつこつ学習中。本を10冊出すことが夢です。PL/SQL」(シーアンドアール研究所)の著者。#インデックス投資スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。