##はじめに
間違っている部分や改善点などありましたらコメントよろしくお願いします。
paizaの問題をやっていて標準入力の値を全部取得して色々計算しなきゃいけなかったんですが、うまくいかなかくて解決までに時間を要したので備忘録&同じ状況の人の手助けとして投稿します。
同じ状況の人がいますように。むしろいてくれ。
##paizaで計算に使いたいならこれを使え!
標準入力で受け取った値で計算をしたい場合は数値にして受け取る必要がありますよね
以下数値で受け取る書き方
##標準入力が一行に一つの場合!
標準入力
12
line = gets.to_i
p line
出力
12
とこのように数値として取得できました。
##標準入力が一行に複数の場合!
標準入力
3 4
line = gets.split(' ').map(&:to_i)
p line
出力
[3,4]
.map(&:to_i)をつけることで数値として受け取ることができました。
##複数行に一つずつの場合!
標準入力
1
2
3
line = readlines.map(&:to_i)
p line
出力
[1,2,3]
です。
##複数行に複数の場合!
標準入力
3
23 42
54 65
1)lines = readlines(chomp: true).map{|line| line.split(' ').map(&:to_i)}.flatten
2)lines = readlines(chomp: true).join(" ").split.map(&:to_i)
3)lines = readlines.join.split.map(&:to_i)
上記の三つどれでも
出力
[3,23,42,54,65]
になります。
##最後に
paizaなどでは初級は標準入力が一行だけのことも多いですが
中級とかになってきて複数行の複数っていうケースが多くなって値を受け取るだけで考えちゃったりしてたので同じ人いたら参考にしてください。
文字列で受け取る場合は他にいっぱい記事が出ていたので割愛で。
あと自分はテラテイルで解決できたので一生懸命考えて調べてダメだったらテラテイルで質問するのがいいと思います!ww
役に立ったらいいね!してください!