日別アーカイブ: 2022年9月30日

paizaLvアップ問題と解答(標準入力18)Ruby

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

詳しくはコチラ

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

問題3 整数の組からの選択 (paizaランク D 相当)

1 行目に整数 N が与えられます。
2 行目以降に、N 組の整数 a_i と b_i が N 行で与えられます。(1 ≦ i ≦ N)
8 組目の a_i と b_i を出力してください。

入力される値
以下の形式で標準入力によって与えられます。
1 行目に 整数 N
2 行目から (N + 1) 行目に N 組の整数 a_i, b_i が N 行で与えられます。

N
a_1 b_1
...
a_N b_N

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

期待する出力
8 組目の a_i と b_i を出力してください。
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。

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

・N は 8 以上 100 以下の整数
・a_i, b_i は 1 以上 10,000 以下の整数 (1 ≦ i ≦ N)
入力例1
10
813 813
8 13
81 1
81 3
8 813
8 138
813 8
83 18
8 13
88 88
出力例1
83 18

解答

# 1行目の入力値(数値)を変数に代入する 
n = gets.to_i
# 入力を1行ずつ受け取り出力を5回繰り返す 
n.times.map do |i| 
# 半角スペース刻みの入力値を変数に代入する 
  numbers = gets.split.join(' ')
# 8番目を出力する(配列は0から始まるので8-1で7) 
  puts numbers if i == 7
end

問題4 文字列と整数の組の入力 (paizaランク D 相当)

1 行目に整数 N が与えられます。
2 行目以降に、N 組の文字列 s_i と整数 a_i が N 行で与えられます。(1 ≦ i ≦ N)
N 組の s_i と a_i を改行区切りで出力してください。

入力される値
以下の形式で標準入力によって与えられます。
1 行目に 整数 N
2 行目から (N + 1) 行目に N 組の文字列 s_i と整数 a_i が N 行で与えられます。

N
s_1 a_1
...
s_N a_N

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

期待する出力
N 組の s_i と a_i を改行区切りで出力してください。
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。

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

・N は 1 以上 100 以下の整数
・a_i は 1 以上 10,000 以下の整数
・s_i は数字または大文字・小文字のアルファベットからなる長さ 1 以上 10 以下の文字列
入力例1
5
paiza 813
pa 81
8pa 13
iza 8
pa 13
出力例1
paiza 813
pa 81
8pa 13
iza 8
pa 13

解答

# 1行目の入力値(数値)を変数に代入する 
n = gets.to_i
# 入力を1行ずつ受け取り出力を5回繰り返す 
n.times.map { |i| puts gets.split.join(' ') }

FINAL問題【組になったデータの入力】文字列と整数の組からの選択 (paizaランク D 相当)

1 行目に整数 N が与えられます。
2 行目以降に、N 組の文字列 s_i と整数 a_i が N 行で与えられます。
8 組目の s_i と a_i を出力してください。

入力される値
以下の形式で標準入力によって与えられます。
1 行目に 整数 N
2 行目から (N + 1) 行目に N 組の文字列 s_i と整数 a_i が N 行で与えられます。

N
s_1 a_1
...
s_N a_N

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

期待する出力
8 組目の s_i と a_i を出力してください。
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。

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

・N は 8 以上 100 以下の整数
・a_i は 1 以上 10,000 以下の整数
・s_i は数字または大文字・小文字のアルファベットからなる長さ 1 以上 10 以下の文字列
入力例1
10
paiza 813
pa 81
8pa 13
iza 8
pa 13
pai 3
zi 8
pp 33
pa 8
pa 138
出力例1
pp 33

解答

# 1行目の入力値(数値)を変数に代入する 
n = gets.to_i
# 入力を1行ずつ受け取り出力を5回繰り返す 
n.times.map do |i| 
# 半角スペース刻みの入力値を変数に代入する 
  numbers = gets.split.join(' ')
# 8番目を出力する(配列は0から始まるので8-1で7) 
  puts numbers if i == 7
end