山傘のプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

プロを目指す人のためのRuby入門 その4

第4章 配列や繰り返し処理を理解する

配列

a = []
# サイズを指定
b = Array.new(3)
# サイズと初期値を指定
c = Array.new(3, 0)

繰り返し

num = [1, 2, 3, 4]
# 0 から 3 まで
(0..3).each do |n|
  puts num[n]
end
# 3 から 0 まで
(3).downto(0) do |n|
  puts num[n]
end

RGB 変換

配列を用いて RGB 変換プログラムを作ります。

class RgbTest < Minitest::Test
  def test_to_hex
    assert_equal '#000000', to_hex(0, 0, 0)
    assert_equal '#ffffff', to_hex(255, 255, 255)
  end

  def test_to_inits
    assert_equal [0, 0, 0], to_ints('#000000')
    assert_equal [255, 255, 255], to_ints('#ffffff')
  end
end
def to_hex(r, g, b)
  hex = '#'
  [r, g, b].each do |n|
    hex += n.to_s(16).rjust(2, '0')
  end
  hex
end

def to_ints(hex)
  r, g, b = hex[1..2], hex[3..4], hex[5..6]
  [r, g, b].map do |s|
    s.hex
  end
end

感想

競技プログラミングRuby を使ってみた感想として、Java よりも文字数が少なくて済むと思いました。計算量の多くないものは実行時間が Java よりも短いんですいが、計算量が多くなると Java の方が早くなりました。実行時間が緩い yukicoder などでは Ruby を積極的に使っていこうとます。

progate と paiza の入門は修了しました。残りは課金が必要みたいです。