AtCoder Beginners SelectionにRubyで挑戦 #2

AtCoder初心者がやるべき問題集、AtCoder Beginners Selectionに挑戦。

各問題の制約や入出力例などは引用元リンク(AtCoderのサイト)へ。

ABC081A - Placing Marbles

問題文
すぬけ君は 1,2,3 の番号がついた 3 つのマスからなるマス目を持っています。 各マスには 0 か 1 が書かれており、マス i には si が書かれています。
すぬけ君は 1 が書かれたマスにビー玉を置きます。 ビー玉が置かれるマスがいくつあるか求めてください。

入力
入力は以下の形式で与えられる。
s1 s2 s3

入力例
101

出力例
2

ABC081A - Placing Marbles

提出コード

puts gets.count("1")

結果:AC(正解) 実行時間:54 ms

1の数を数えればOK。

3ヶ月前に提出したコード

3月に自分が提出したコードが残っていた。

n = gets.chomp
answer = 0
x = 0
while x < 3
    number = n.byteslice(x, 1)
    number = number.to_i
    if number == 1
        answer += 1
    end
    x += 1
end
puts answer

結果:AC(正解) 実行時間:57 ms

すごいまわりくどい…

そしてPHPの影響をかなり感じる。

この頃bytesliceなんて知ってたことにびっくり。ググったとはいえ。

これが成長か?笑