Edited at

🍺Rubyでプログラミングコンテストをやるときの標準入力、標準出力

More than 1 year has passed since last update.


はじめに

Indeedのインターン選考でプログラミングテストがあったのだがボコボコにやられた。

Rubyで書いたのだがRailsしか書かないので標準入出力すら慣れておらず手間取った。

悔しいので、競プロをかじろうと思った。

c++が定番らしいが書いてて楽しくないので、Rubyで始めて高みを目指すようになったらc++に乗り換えようと思う。

Rubyで一行でスリムに書けるとありえん気持ちいい。


標準入力

標準入力とはターミナルから入力するアレのことである。

chopは改行文字を取り除くメソッド

splitは一文字づつ分けるメソッド

to_iはIntegerに型変換するメソッド

mapはマップするメソッド

# ---- 入力したいもの----

N
a1
a2
.
.
aN
# -------------------

n = gets.chop.to_i
a = []
n.times { a << gets.to_i }

# ---- 入力したいもの----

X Y Z
# -------------------

x, y, z = gets.chop.split.map(&:to_i)

# ---- 入力したいもの----

a1 a2 .... aN
# -------------------

a = gets.chop.split.map(&:to_i)

# ---- 入力したいもの----

N
a1 b1
a2 b2
. .
.   .
aN  bN
# -------------------
n = gets.chop.to_i
a = []
b = []
n.times do
line = gets.chop.split.map(&:to_i)
a << line.shift
b << line
end


標準出力

基本的にputsで事足りると思う。

"#{}"で変数を埋め込める、

var = "fuga"

puts "hoge#{var}"

# ----出力----
# hogefuga