※スキルチェック問題ではありません。
規約により公式の解答コードそのままはよろしくないので、
オリジナルのコードにしています。
詳しくはコチラ
なるべくわかりやすい解説を付けました
FINAL問題 標準入出力 (paizaランク C 相当)
毎年 5 月 1 日に、自分が運営している会社の社員一覧表を作成しています。表は年度ごとに更新され、社員の名前と年齢が載っています。
ところで、会社のメンバーは昨年度から全く変わらず、社員の誕生日は全員 7 月 7 日だったので、前年度の一覧表の年齢欄をそれぞれ +1 するだけで今年度の表が作れることにパイザ君は気づきました。
昨年度の一覧表が与えられるので、今年度の一覧表を出力してください。
- 入力される値
- 入力は以下のフォーマットで与えられます。
N s_1 a_1 ... s_N a_N 1 行目には社員の数を表す整数 N が与えられ、2 行目 〜 (N + 1) 行目の各行では、社員の名前を表す文字列 s_i とその社員の昨年度の年齢を表す整数 a_i が半角スペース区切りで与えられます(1 ≤ i ≤ N)。 入力値最終行の末尾に改行が1つ入ります。 
 文字列は標準入力から渡されます。
- 期待する出力
- 入力された通りの順番で、社員 s_i の名前と、その社員の今年度の年齢を半角スペース区切りでN行出力してください。
s_1 (a_1 + 1) ... s_N (a_N + 1) 末尾に改行を入れ、余計な文字、空行を含んではいけません。 
- 条件
- すべてのテストケースにおいて、以下の条件をみたします。
・1 ≤ N ≤ 50 ・s_i(1 ≤ i ≤ N)は 1 文字以上 10 文字以下の文字列 ・s_i(1 ≤ i ≤ N)の各文字は英小文字または英大文字または数字 ・18 ≤ a_i ≤ 120(1 ≤ i ≤ N) 
- 入力例1
- 
1 Yamada 30 
- 出力例1
- 
Yamada 31 
- 入力例2
- 
3 Tanaka 18 Sato 50 Suzuki 120 
- 出力例2
- 
Tanaka 19 Sato 51 Suzuki 121 
解答 (入力例1で解説)
#1行目の入力値(数値)を変数に代入する
n = gets.to_i
#各変数を空の配列で初期化する
name,age = [],[]
#n回繰り返す
n.times.map do |i|
#2行目の先頭の文字列を文字列としてnameに代入する(name = val)
#2行目の後ろの数値を数値として変数に代入する(このとき+1してから代入する:age = val.to_i + 1)
  gets.split.map.with_index { |val, i| i == 0 ? name = val : age = val.to_i + 1}
# 半角スペースを間に挟んで文字列(name)と文字列(age.to_s)を出力する
# age.to_sで文字列に変換する
  puts name + " " + age.to_s
end
