Skip to content

Conversation

@chan-san
Copy link

@chan-san chan-san commented Dec 6, 2017

タケシくん、コード修正してみたから見てみてね

修正ポイント

  1. メソッドは動詞にしましょう。 transport -> transpose
  2. split("\n")lines と書けます。ドキュメント読んでね( https://docs.ruby-lang.org/ja/latest/class/String.html#I_LINES )。
  3. split のデフォルト値が空白文字なので、 split(" ")split と同義です。ドキュメント読んでね( https://docs.ruby-lang.org/ja/latest/class/String.html#I_SPLIT )。また、引数がない場合、 map{ |s| s.split } は、 map(&:split) と書けるので活用して下さい。ブロックを渡すよりも高速です。
  4. Arrayには transpose というメソッドがあるので活用しましょう( https://docs.ruby-lang.org/ja/latest/class/Array.html#I_TRANSPOSE )。
  5. ブロック変数を s で受け取っていましたが、可能な限り意味のある名前を用いましょう。今回は array を用いました。
  6. リファクタリングの結果なくなってしまったけど、 0.upto(rows_count -1) は、 rows_count.times と書いたほうが簡潔で見やすくなります。
  7. リファクタリングの結果なくなってしまったけど、配列の大きさが最初から分かっている場合は、空配列を用意して transported_array << よりも、 Array.new(rows_count) であらかじめ確保しておいて、 transpoted_array[i] = の方が効率的です。

処理速度はできるだけ気にするようにしてみてね。
https://qiita.com/sue738/items/6c312672cecd9e0400a2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant