paizaで知った入力ファイルの取り方(Rubyで実装)


どうも,院生へなちょこプログラマーです.

今回は読み込んだファイルの扱い方についてです.

最近まで恥ずかしながら,
企業で実施されるWebテストでよくみる入力ファイルの読み込みで詰まっていました.

読み込むデータについて

よくみる問題で渡されるデータがこちら.


https://paiza.jp/

上記のファイルを読み取る方法がよくわからなかったので,
調べて気づいたことをメモ書きいたします.

paizaのサンプルコード

paiza.rb
input_lines = gets.to_i
input_lines.times {
  s = gets.chomp.split(",")
  print "hello = ",s[0]," , world = ",s[1],"\n"
}

これを見た当時の僕
:値は配列で入っているのかな?
:そうであるなら改行とか空白はどうなるの?

getsを調べないとわからないなと思い,調べていくと少しづつわかってきた.

結論

getsは一列目のデータを得る.
例えばサンプルであるならば,

paiza.rb
#input_lines = 2 という1行目のデータが入る
input_lines = gets.to_i

#実際は 2.timesになっている
input_lines.times { 
 #sに2と5を配列で格納する(splitで,を消して分ける)
  s = gets.chomp.split(",")
  #s[0]には2,s[1]には5が入っているわけである
  print "hello = ",s[0]," , world = ",s[1],"\n"
}

コメントに記載した通り,上記のようになる.

一言

paizaで勉強する際にはこの知識は前提ですね.
また,企業のWebテストを受ける前に必ず知っておくべきことだと思うので,
受ける際には,練習問題をやっておくことをお勧めします.
(筆者は練習も何もせず受けて,ぼこられました・・・)

最後に,「getsの考え方間違っているよ!」とか
「データの取り方はこれが便利だよ」とか
アドバイス等あれば,コメントよろしくお願いします!