日別アーカイブ: 2022年8月13日

paizaLvアップ問題と解答(標準出力13)Ruby

※スキルチェック問題ではありません。
規約により公式の解答コードそのままはよろしくないので、
オリジナルのコードにしています。

詳しくはコチラ

なるべくわかりやすい解説を付けました。

問題1 2 * 2 の出力 (paizaランク D 相当)

4 つの数値 0, 8, 1, 3 をこの順に、2 行 2 列の形で出力してください。
ただし、数値の間には半角スペースを、各行の末尾には、半角スペースの代わりに改行を入れてください。

入力される値
ありません。

入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。

期待する出力
答えの数値を出力してください。

0 8
1 3

末尾に改行を入れ、余計な文字、空行を含んではいけません。

条件
なし

解答

puts "0 8"
puts "1 3"

または

puts [["0 8"],["1 3"]]

問題2 3 * 3 の出力 (paizaランク D 相当)

9 個の数値が半角スペース区切りで入力されます。この数値を 3 行 3 列の形式で出力してください。
具体的には、入力された数値を N_1 , N_2 , N_3 , …, N_9 とするとき、 1 行目にはN_1 からN_3 を、2 行目には N_4 から N_6 を、3 行目には N_7 から N_9 を出力してください。
ただし、数値の間には半角スペースを、各行の末尾には、半角スペースの代わりに改行を入れてください。

入力される値
N_1 N_2 N_3 ... N_9

入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。

期待する出力
答えの数値を出力してください。

N_1 N_2 N_3
N_4 N_5 N_6
N_7 N_8 N_9

末尾に改行を入れ、余計な文字、空行を含んではいけません。

条件
すべてのテストケースにおいて、以下の条件をみたします。

* 入力される数値はすべて 0 以上 1,000 以下

入力例1
0 1 2 3 4 5 6 7 8
出力例1
0 1 2
3 4 5
6 7 8

解答

numbers = gets.split.each_slice(3).to_a
numbers.size.times do |i|
  puts numbers[i].join(' ')
end