※スキルチェック問題ではありません。
規約により公式の解答コードそのままはよろしくないので、
オリジナルのコードにしています。
詳しくはコチラ
なるべくわかりやすい解説を付けました
問題4 入力の配列による保持 (paizaランク D 相当)
整数 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 の中で最も大きい数を出力してください。末尾に改行を入れ、余計な文字、空行を含んではいけません。
- 条件
-
すべてのテストケースにおいて、以下の条件をみたします。 ・1 ≦ n ≦ 50 ・各 a_i(1 ≦ i ≦ n)について 1 ≦ a_i ≦ 50
- 入力例1
-
2 4 7
- 出力例1
-
7
- 入力例2
-
3 20 19 2
- 出力例2
-
20
解答
#1行目の入力値(数値)を変数に代入する n = gets.to_i #2行目以降の数値を配列として変数に代入する numbers = readlines.map(&:to_i) #配列の最大値を出力する puts numbers.max
問題5 半角スペース区切りでの出力 (paizaランク D 相当)
整数 n が与えられるので、n 回、半角スペース区切りで paiza
と出力してください。
- 入力される値
- 入力は以下のフォーマットで与えられます。
n
1行目に整数nが与えられます。
入力値最終行の末尾に改行が1つ入ります。文字列は標準入力から渡されます。
- 期待する出力
- paiza と n 回、半角スペース区切りで出力してください。最後の paiza の後には半角スペースは入れず、改行を入れ、余計な文字、空行を含んではいけません。
paiza paiza ... paiza
- 条件
- すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ n ≦ 50
- 入力例1
-
2
- 出力例1
-
paiza paiza
- 入力例2
-
3
- 出力例2
-
paiza paiza paiza
解答 (入力例1で解説)
#1行目の入力値(数値)を変数に代入する
n = gets.to_i
#['paiza'] * n →["paiza", "paiza"]
#↑にしてから.join(' ')で半角スペースを間に挟んで結合して出力する puts (['paiza'] * n).join(' ')
問題6 改行区切りでの出力 (paizaランク D 相当)
整数 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 行で与えられます。
入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。
- 期待する出力
- a_1, …, a_n をそのままの順番で改行区切りで出力してください。
a_1 ... a_n
末尾に改行を入れ、余計な文字、空行を含んではいけません。
- 条件
- すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ n ≦ 50
・各 a_i(1 ≦ i ≦ n)について、1 ≦ a_i ≦ 50
- 入力例1
-
2 1 5
- 出力例1
-
1 5
- 入力例2
-
3 4 30 12
- 出力例2
-
4 30 12
解答
#1行目の入力値(数値)を変数に代入する n = gets.to_i #2行目の半角スペース刻みの入力値を受け取り変数に代入する numbers = gets.split.map(&:to_i) #出力する puts numbers