コンテンツへスキップ

【Ruby基礎】AtCoder Beginner Contest 029 A – 複数形

■はじめに

Rubyの基礎的な問題をたくさん解くことで基本的な考え方やメソッドの使い方を定着させたい。
基本的にはAtCoderというプログラミングコンテスト(競技プログラミング)の過去問を使う。(AtCoderは難易度が分かれており、難易度の低いA問題かB問題を解いていく)

(5/23時点の方針)
メソッドの切り分け方や値の受け渡しを練習するために、コード長の短さについては気にせずに書くことにする。

■問題

●出典

AtCoder Beginner Contest 029のA問題
https://atcoder.jp/contests/abc029/tasks/abc029_a

●問題文

英小文字からなる文字列 W が入力されます。
W の末尾に英小文字の s を付け足したものを出力してください。

●入力

入力は以下の形式で標準入力から与えられる。

W
  • 1 行目に、英小文字からなる文字列 W (1 ≦ ∣W∣ ≦ 10, ここで ∣W∣ は W の長さを表す) が与えられる。

●出力

標準出力に、 W の末尾に英小文字の s を付け足したものを出力し、最後に改行せよ。
空白などの余計な出力をしてはならない。大文字と小文字は区別される。

■回答

●愚直に書く

標準入力を取って+で繋げばいけそう。

w = gets.chomp
puts w + 's'

通った!

●メソッド化して書く

メソッドを作る練習のために、あえてそういう書き方をする。
あと、文字列を結合するときは+ではなく式展開しろってつい最近rubocopに言われたところなので、その修正もした。

def main
  w = read_word
  puts "#{w}s"
end

def read_word
  gets.chomp
end

main

通った!

●出てきたメソッド等

公式リファレンスを見る訓練。

  • 特に無し

■振り返りなど

  • 最近やっていた「+を使わずに式展開を使う」が出てきて、ちょうど良かった。
  • メソッド化の練習をするならB問題くらいにしないとかなぁ。