📑
RubyでAtCoderするときの雛形
雛形
N個の数字を合計する問題の例
$stdin = DATA
n = gets.to_i
p gets.split.take(n).map(&:to_i).sum
__END__
3
20 30 50
# >> 100
-
gets
は$stdin
から受け取る -
$stdin
は変更してよい - Ruby には
__END__
の下に記述するとDATA.gets
で順に受け取れる機能がある - なので
$stdin
をDATA
にする - すると
gets
はDATA.gets
相当になる - なので
__END__
の後のテキストがgets
で順に取得できる
ついでに書くと、るびきち先生の rcodetools (xmpfilter) を活用すると実行結果がソースにコメントに出るので Emacs を利用の方にはおすすめしたい。
# >> 100
あと xmpfilter を使うと $stdin = DATA
を書かなくても __END__
の内容を gets で取得できる。
提出
ちょっとダサいけど $stdin = DATA
と __END__
の間の部分だけをコピペして提出する。
n = gets.to_i
p gets.split.map(&:to_i).take(n).sum
$stdin = DATA
がないので gets は本当の標準入力から受け取れる。
xmpfilter だけを使っている場合は $stdin = DATA
が不要なのでそのまま提出できる。
欠点
-
__END__
の下に1つ分の入力しか書けない
Discussion