- 
問題6 n回文字列表示して改行区切りする
- 期待する出力
- n 回 suzutuki と改行区切りで出力してください。
suzutuki ... suzutuki 
- 
- 入力例1
- 
2 
 - 出力例1
- 
suzutuki suzutuki 
 
解答どちらでもOK
e = gets.to_i puts "suzutuki\n" * e
n = gets.to_i
n.times { puts 'suzutuki' }
問題5 最初のnを省く
整数 n と n 個の整数 a_1, …, a_n が改行区切りで与えられるので、
a_1, …, a_n を与えられた順に、改行区切りで出力してください。
- 入力される値
- 入力は以下のフォーマットで与えられます。
n a_1 ... a_n 1 行目には整数 n が与えられ、2 行目から (n+1) 行目にかけては n 個の整数 a_1, …, a_n が改行区切りで与えられます。入力値最終行の末尾に改行が1つ入ります。文字列は標準入力から渡されます 
- 期待する出力
- a_1, …, a_n を入力された順に改行区切りで出力してください。
a_1 ... a_n 入力例1 
- 2
 1
 2
- 出力例1
- 1
 2
解答1 popで最初を省く
e = readlines.map(&:to_i) c = e.length puts e.pop(c-1)
解答2 繰り返し処理でやる
n = gets.to_i
n.times do
  a = gets.to_i
  puts a
end
- 繰り返します。
- n.times doと- endの間に今回は- a = gets.to_iを書きます。これにより n 行の入力を受け取ることになります。
- 文字列として a を出力しても正解になりますが、整数として入力されるので、to_i メソッドを使って変換を行っています。
問題6 a_1, …, a_n で最大値を表示.max
- 
n a_1 ... a_n 1 行目には整数 n が与えられ、 2 行目から (n + 1) 行目にかけては n 個の整数 a_1, …, a_n が改行区切りで与えられます。 
- 期待する出力
- a_1, …, a_n の中で最も大きい数を出力してください。
- 条件
- すべてのテストケースにおいて、以下の条件をみたします。
 ・1 ≦ n ≦ 50・各 a_i(1 ≦ i ≦ n)について 1 ≦ a_i ≦ 50
- 入力例1
- 2
 4
 7
- 出力例1
- 7
解答
n = readlines.map(&:to_i) puts n.max
別解
n = gets.to_i
arr = Array.new(n)
n.times { |i| arr[i] = gets.to_i }
puts arr.max
- Ruby では arr = Array.new(n)と書くことで長さ n の配列 arr を用意することができます。
- ブロックの冒頭に |i|と書くと、「いま何回目のループか」が i に順々に代入されます。初回は 0 回目なので注意して下さい。
- arr のインデックス i の要素に値 x を代入するには arr[i] = xのように書きます。
- 今回は入力値を整数に変換して代入したいので a[i] = gets.to_iと書きます。
- 配列内の最大値は arr.max()のように書くと取得することができます。
- 入力される値
- 入力は以下のフォーマットで与えられます。
n 1行目に整数nが与えられます。 入力値最終行の末尾に改行が1つ入ります。 
 文字列は標準入力から渡されます。
- 期待する出力
- suzutuki と n 回、半角スペース区切りで出力してください。最後の suzutuki の後には半角スペースは入れず、改行を入れ、余計な文字、空行を含んではいけません。
suzutuki suzutuki ... suzutuki 
条件
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ n ≦ 50
入力例1
2
出力例1
suzutuki suzutuki
入力例2
3
出力例2
suzutuki suzutuki suzutuki
解答
最後の半角スペースを取り除くには.chopを使う
e = gets.to_i f = "suzutuki " * e puts f.chop
別解
n = gets.to_i
ans = 'suzutuki'
(n - 1).times { ans += ' suzutuki' }
puts ans
- 方針の通り実装しています。
- まず ans = 'suzutuki'で ans を初期値'suzutuki'で用意します。
- その後、ans += ' suzutuki'を n-1 回繰り返す繰り返し処理を書けばよいです。
- 上記から分かるように Ruby では文字列の連結を + 演算子を使って行うことができます。
解答例 2
n = gets.to_i
arr = Array.new(n)
n.times { |i| arr[i] = 'suzutuki' }
puts arr.join(' ')
- Array クラスの join メソッドを使う方法です。
- join メソッドは arr.join(' ')のように使います。この場合の返り値は arr の要素間に' 'を挟んだ文字列です。
問題
整数 n が与えられ、その後に n 個の整数 a_1, …, a_n が半角スペース区切りで与えられるので、a_1, …, a_n をそのままの順番で改行区切りで出力してください。
- 入力される値
- 入力は以下のフォーマットで与えられます。
n a_1 a_2 ... a_n 1 行目には整数 n が与えられ、2 行目には半角スペース区切りの n 個の数 a_1, …, a_n が 1 行で与えられます。 
- 期待する出力
- a_1, …, a_n をそのままの順番で改行区切りで出力してください。
a_1 ... a_n 
- 入力例1
- 2
 1 5
- 出力例1
- 1
 5
- 入力例2
- 3
 4 30 12
- 出力例2
- 4
 30
 12
解答
#"4 30 12" gets #pの場合p gets.split.map(&:to_i)数値にちゃんとする puts gets.split
別解
n = gets.to_i
a = gets.split(' ').map(&:to_i)
a.each { |num| puts num }
- gets.split(' ').map(&:to_i)とすることで 1 行の入力を半角スペースで区切り、すべての要素を整数に変換して配列で受け取ることができます。
- 配列.each do |変数|のように書くと- 配列の各要素が- 変数に代入され、繰り返し処理が行われます。
解答例 2
n = gets.to_i
a = gets.split(' ').map(&:to_i)
puts a
- puts 配列のように書くと- 配列の各要素を改行区切りで出力することができます。
問題
10
813
100と入力されるので、↓のように出力してください。
10-813-100解答
a = gets.chomp b = gets.chomp c = gets.chomp puts a + "-" + b + "-" + c
別解
line = readlines.map(&:to_s) puts line[0].chomp + "-" + line[1].chomp + "-" + line[2]
別解2
line = readlines.map(&:chomp) puts line[0] + "-" + line[1] + "-" + line[2]
別解3 これが一番良い(joinで任意の文字を足してつなげる)
line = readlines.map(&:chomp)
puts line.join('-')
					