paiza プログラミング

[Ruby|Python]paiza 標準出力メニュー 【n 行の出力】

paiza_stdout_4

今回はpaiza 標準入力メニューセクション4【n 行の出力】を解説します。

セクション4は、1から入力された整数n までを改行区切りで出力する問題です。

本記事で使用しているメソッドについて

解答例で使っているメソッドについて、下記の記事で詳しく解説していますので参考にしてみて下さい。

セクション4:【n 行の出力】

4-STEP1: 1 行または 2 行の出力 (paizaランク D 相当)

1から入力された整数n (1 ≦ n ≦ 2) までを改行区切りで出力する問題です。

入出力例
# 入出力例
INPUT1 = <<~"EOS"
  1
EOS
OUTPUT1 = <<~"EOS"
  1
EOS

INPUT2 = <<~"EOS"
  2
EOS
OUTPUT2 = <<~"EOS"
  1
  2
EOS
Ruby解答例1

gets.to_i整数nを受け取り、(1..n).to_a1からnまでの整数の配列aryを生成し、putsメソッドで出力しています。
※ このコードでセクション4全ての問題に正解することが出来ます。

# 解答例1
# 入力
n = gets.to_i
# 1 から n までの配列 ary を生成
ary = (1..n).to_a
# 出力
puts(ary)
Ruby解答例2

gets.to_i整数nを受け取り、1.upto(n) do |num| ~ endで、整数num1からnまでカウントアップし、putsメソッドで出力しています。
※ このコードでセクション4全ての問題に正解することが出来ます。

# 解答例2
# 入力
n = gets.to_i
# num を 1 から n まで 1 ずつ増やしながら繰り返す
1.upto(n) do |num|
  # 出力
  puts(num)
end
Ruby解答例3

gets.to_i整数nを受け取り、入力される整数の種類分の条件分岐を設定して出力しています。
※ この問題に対してはこういう書き方も出来ますっていう例です。

  1. 整数n 1 以上なら 1 を出力
  2. 整数n 2 なら 2 を出力
# 解答例3
# 入力 (1 ≦ n ≦ 2)
n = gets.to_i
# 出力
puts(1) if n >= 1
puts(2) if n == 2
Python解答例1

int(input())整数nを受け取り、list(range(1, n + 1))1からnまでの整数の配列aryを生成し、リスト内包表記のprintメソッドで出力しています。
※ このコードでセクション4全ての問題に正解することが出来ます。

# 解答例1
# 入力
n = int(input())
# 1 から n までの配列 ary を生成
ary = list(range(1, n + 1))
# 出力
[print(n) for n in ary]
Python解答例2

int(input())整数nを受け取り、for num in range(a, n + 1)で、整数num1からnまでカウントアップし、printメソッドで出力しています。
※ このコードでセクション4全ての問題に正解することが出来ます。

# 解答例2
# 入力
n = int(input())
# num を 1 から n まで 1 ずつ増やしながら繰り返す
for num in range(1, n + 1):
    print(num)
Python解答例3

int(input())整数nを受け取り、入力される整数の種類分の条件分岐を設定して出力しています。
※ この問題に対してはこういう書き方も出来ますっていう例です。

  1. 整数n 1 以上なら 1 を出力
  2. 整数n 2 なら 2 を出力
# 解答例3
# 入力 (1 ≦ n ≦ 2)
n = int(input())
# 出力
if n >= 1:
    print(1)
if n == 2:
    print(2)

4-STEP2: 数行の出力 (paizaランク D 相当)

1から入力された整数n (1 ≦ n ≦ 5) までを改行区切りで出力する問題です。

入出力例
# 入出力例
INPUT1 = <<~"EOS"
  1
EOS
OUTPUT1 = <<~"EOS"
  1
EOS

INPUT2 = <<~"EOS"
  2
EOS
OUTPUT2 = <<~"EOS"
  1
  2
EOS
Ruby解答例1

4-STEP1 解答例1 と同じコードです。

# 解答例1
# 入力
n = gets.to_i
# 1 から n までの配列 ary を生成
ary = (1..n).to_a
# 出力
puts(ary)
Ruby解答例2

4-STEP1 解答例2 と同じコードです。

# 解答例2
# 入力
n = gets.to_i
# num を 1 から n まで 1 増やしながら繰り返す
1.upto(n) do |num|
  puts(num)
end
Ruby解答例3

gets.to_i整数nを受け取り、入力される整数の種類分の条件分岐を設定して出力しています。

  1. 整数n 1 以上なら 1 を出力
  2. 整数n 2 以上なら 2 を出力
  3. 整数n 3 以上なら 3 を出力
  4. 整数n 4 以上なら 4 を出力
  5. 整数n 5 なら 5 を出力
# 解答例3
# 入力 (1 ≦ n ≦ 5)
n = gets.to_i
# 出力
puts(1) if n >= 1
puts(2) if n >= 2
puts(3) if n >= 3
puts(4) if n >= 4
puts(5) if n == 5
Python解答例1

4-STEP1 解答例1 と同じコードです。

# 解答例1
# 入力
n = int(input())
# 1 から n までの配列 ary を生成
ary = list(range(1, n + 1))
# 出力
[print(n) for n in ary]
Python解答例2

4-STEP1 解答例2 と同じコードです。

# 解答例2
# 入力
n = int(input())
# num を 1 から n まで 1 ずつ増やしながら繰り返す
for num in range(1, n + 1):
    print(num)
Python解答例3

int(input())整数nを受け取り、入力される整数の種類分の条件分岐を設定して出力しています。

  1. 整数n 1 以上なら 1 を出力
  2. 整数n 2 以上なら 2 を出力
  3. 整数n 3 以上なら 3 を出力
  4. 整数n 4 以上なら 4 を出力
  5. 整数n 5 なら 5 を出力
# 解答例3
# 入力 (1 ≦ n ≦ 5)
n = int(input())
# 出力
if n >= 1:
    print(1)
if n >= 2:
    print(2)
if n >= 3:
    print(3)
if n >= 4:
    print(4)
if n == 5:
    print(5)

 


4-STEP3: 10 行以内の出力 (paizaランク D 相当)

1から入力された整数n (1 ≦ n ≦ 10) までを改行区切りで出力する問題です。

入出力例
# 入出力例
INPUT1 = <<~"EOS"
  1
EOS
OUTPUT1 = <<~"EOS"
  1
EOS

INPUT2 = <<~"EOS"
  2
EOS
OUTPUT2 = <<~"EOS"
  1
  2
EOS
Ruby解答例1

4-STEP1 解答例1 と同じコードです。

# 解答例1
# 入力
n = gets.to_i
# 1 から n までの配列 ary を生成
ary = (1..n).to_a
# 出力
puts(ary)
Ruby解答例2

4-STEP1 解答例2 と同じコードです。

# 解答例2
# 入力
n = gets.to_i
# num を 1 から n まで 1 増やしながら繰り返す
1.upto(n) do |num|
  puts(num)
end
Python解答例1

4-STEP1 解答例1 と同じコードです。

# 解答例1
# 入力
n = int(input())
# 1 から n までの配列 ary を生成
ary = list(range(1, n + 1))
# 出力
[print(n) for n in ary]
Python解答例2

4-STEP1 解答例2 と同じコードです。

# 解答例2
# 入力
n = int(input())
# num を 1 から n まで 1 ずつ増やしながら繰り返す
for num in range(1, n + 1):
    print(num)

 


4-FINAL: 【n 行の出力】1,000 行以内の出力 (paizaランク D 相当)

1から入力された整数n (1 ≦ n ≦ 1000) までを改行区切りで出力する問題です。

入出力例
# 入出力例
INPUT1 = <<~"EOS"
  1
EOS
OUTPUT1 = <<~"EOS"
  1
EOS

INPUT2 = <<~"EOS"
  2
EOS
OUTPUT2 = <<~"EOS"
  1
  2
EOS
Ruby解答例1

4-STEP1 解答例1 と同じコードです。

# 解答例1
# 入力
n = gets.to_i
# 1 から n までの配列 ary を生成
ary = (1..n).to_a
# 出力
puts(ary)
Ruby解答例2

4-STEP1 解答例2 と同じコードです。

# 解答例2
# 入力
n = gets.to_i
# num を 1 から n まで 1 増やしながら繰り返す
1.upto(n) do |num|
  puts(num)
end
Python解答例1

4-STEP1 解答例1 と同じコードです。

# 解答例1
# 入力
n = int(input())
# 1 から n までの配列 ary を生成
ary = list(range(1, n + 1))
# 出力
[print(n) for n in ary]
Python解答例2

4-STEP1 解答例2 と同じコードです。

# 解答例2
# 入力
n = int(input())
# num を 1 から n まで 1 ずつ増やしながら繰り返す
for num in range(1, n + 1):
    print(num)

今回のまとめ

配列の要素を改行区切りで出力するには、配列に対して一括処理する方法と、配列のそれぞれの要素に対して処理する方法があります。

また、入力値が変わっても対応できるようにコードを書くと、入力条件が変わった時も修正が少ない、または修正不要で対応することが出来ます。

セクション4では可変の要素数に対する出力を扱いました。割とアッサリした問題でしたね。

次は、特定の区切り文字での出力です!



【PR】アルゴリズム学習でお世話になった本


アルゴリズム関連の技術書は大抵C/C++で書かれていますが、ある程度プログラムが出来れば、処理の流れは理解することが出来ます。






通称: 螺旋本。C++で解説されています。AOJ(Aizu Online Judge)を運営している会津大学の渡辺准教授が書いた本です。データ構造や計算量の内容から丁寧に書いてありますのでアルゴリズム学習の最初の参考書としてオススメです。







通称: 蟻本。C++で解説されています。競技プログラミング中級者の定番書と言われていて、競技プログラミングで利用できる色々なアルゴリズムを学ぶことが出来ます。かなり高度な内容も含まれているので1冊分を完全に理解するのにはかなりの時間がかかりそうですが、手元に置いて何度も読み返しています。







通称: チーター本。C#, C++, JAVAでTopcoderの問題を解説しています。初心者~中級者向けに書かれているので解説が非常に丁寧です。







Python3でアルゴリズムを解説している本です。講義スタイルの本で、図やフローチャートを使ってアルゴリズムとデータ構造についてしっかりと説明されています。代わりにコードは少なめです。Pythonコードが読めなくても十分理解できると思います。


-paiza, プログラミング
-

© 2024 じゃいごテック