Ruby・Railsはじめに最初はRubyの勉強のために始めた競技プログラミング(以下競プロ)ですが、最近はほぼ趣味として取り組んでいます。いずれは競プロに適しているとされる、コンパイル言語のC++で取り組んでみたいとは思っているものの、まだRuby学習中の身なのでしばらくはRubyでやっていこうと思っています。blog.tatehitolog.comさて、僕の競プロ歴はAtCoderのABCに4回出場、実力は3完できるくらいの初心者ではありますが、Rubyで競プロを行う上で役に立つTipsをブログに書き溜めていきたいと思い立ち、この記事を書いています。競プロのRuby情報は多くないと思いますので、誰かの役に立てれば幸いです。いうことで、今回は競プロでは必須の「標準入力を扱う方法」についてです。整数として取得する浮動小数点数として取得するスペース区切りの数値を取得する縦に並んだ数値を取得するgetsメソッドで標準入力を取得できるRubyでは、getsで標準入力を取得できます。getsで取得した文字列は改行コード付きのため、競プロにおいてはgets単独ではほとんど使いません。入力を文字列で扱う場合は、chompを使って末尾の改行コードを取り除きます。これをしないと、パッと見正しい出力ができていても、オンラインジャッジで誤答と判定される場合があるので注意です。このことを知らず、「明らかに正しい出力が得られているのにACにならない。」とドツボにはまったことがありました。ちなみに、入力を数値で扱う場合はchompは必要ありません。chompを付けると処理速度の低下につながるようなので、文字列を扱う場合のみ付けるようにしましょう。"sample"文字列を1文字ずつ分けて配列に格納する入力の文字列を、1文字ずつ扱いたい場合はcharsを使って分割し配列に格納できます。整数として取得するgetsは文字列を返すので、数値として扱いたい場合はto_iで整数に変換します。32数値を文字列として扱いたい場合はgets.chompを使います。"32"浮動小数点数として取得する入力値を小数で扱いたい場合はto_fを使います。32.0スペース区切りの数値を取得する競プロでよくあるのがスペース区切りで数値が並んでいる入力です。この場合は、splitを使って各数値を分割します。')と引数に区切り文字の半角スペースを指定している人を見かけますが、splitは引数を省略すると半角スペースで区切ってくれるので、結果は変わりません。1]各数値を配列でなく、独立した変数に格納したい場合は多重代入を使います。12縦に並んだ数値を取得する縦に数値がならんだ入力を扱う方法です。最初に「数値の数」が入力として与えられ、以降、縦に数値が並ぶケースが多いです。以下の例だと、数値の数「4」が与えられ、以降、4つの数値が縦に並びます。この場合は、4回gets.to_iを繰り返せばOKです。09:25【Rubyで競プロ】よく使う、標準入力を扱う方法あれこれTweet関連記事2020-02-09【Rails】『omniauth-twitter』でログイン機能を実装する手順いちいち思い出すのが面倒なので手順を記録しておく。