※スキルチェック問題ではありません。
規約により公式の解答コードそのままはよろしくないので、
オリジナルのコードにしています。
詳しくはコチラ
なるべくわかりやすい解説を付けました。
問題7 1行目で与えられる N 個の整数の入力 (large)
1 行目で、整数 N と、続けて N 個の整数 a_1, … , a_N が半角スペース区切りで与えられます。a_1, … , a_N を改行区切りで出力してください。
- 入力例1
-
5 8 1 3 1 3
- 出力例1
-
8 1 3 1 3
解答 .shiftで最初の配列を取り除いた後に出力
a = gets.split a.shift puts a
問題8 1 行目で与えられる N 個の実数の入力 (large)
1 行目で、整数 N と、続けて N 個の実数 a_1, … , a_N が半角スペース区切りで与えられます。a_1, … , a_N を改行区切りでそのまま出力してください。
- 入力例1
-
5 8.13 81.3 813 0.813 1.381
- 出力例1
-
8.13 81.3 813 0.813 1.381
解答 問題7とほぼ同じだが小数点なので.to_fで入力を受け取る。問題7と同じ答えでもOK
a = gets.split.map(&:to_f) a.shift puts a
問題9 行ごとに要素数の異なる整数列の入力
1 行目に整数 N が与えられます。
2 行目から (N + 1) 行目までの先頭に整数 M_i (1 ≦ i ≦ N) が与えられます。
それに続いて M_i 個の整数 a_1, …, a_{M_i} が与えられます。
上から i 番目、左から j 番目の整数は a_{i,j} です。
N 行の a_1, …, a_M をそのまま出力してください。
- 入力例1
- 3
1 8
2 8 1
3 8 1 3
-
出力例1 8 8 1 8 1 3
解答
- 入力Nを受け取る
- N回繰り返す
- 2行目,3行目,4行目の入力を受け取りaに代入
- 配列の最初の要素を出力したくないので、.shiftで0番目(初め)の配列を取り出す。
- .shiftは破壊的なので、配列の0番目が抜けた配列を.join(‘ ‘)でくっつける時に半角スペースを間に挿入する
n = gets.to_i n.times do a = gets.split.map(&:to_i) m = a.shift puts a.join(' ') end