paizaラーニング(初心者〜中級者向けのプログラミング学習サービス)のプログラミングスキルチェックというのをよくやっています。Dランク(超初級)からSランク(超上級)まであり、現在Cランクなので、まずはBランクを目指しています!
スキルチェックの問題やコードは公開してはいけないルールですが、公開可能な問題集を見つけたのでそちらをやっていきたいと思います。
共通ルール
入力
- 入力値最終行の末尾に改行が1つ入ります。
- 文字列は標準入力から渡されます。
出力
- 最後は改行し、余計な文字、空行を含んではいけません。
1. インクリメント (paizaランク D 相当)
整数 n が入力されるので、その値に1を足した値を出力してください。
入力される値
入力は以下のフォーマットで与えられます。
n期待する出力
n に1を足し算した数値を出力して下さい。条件
すべてのテストケースにおいて、以下の条件をみたします。
-3,000,000 ≦ n ≦ 3,000,000
自分の解答
puts gets.to_i + 1 # 正解!
模範解答も見ましたが、こっちの方がいいかな〜と思いました。笑
2. 数字のみの出力 (paizaランク D 相当)
1行目に行数を表す整数 n、続く n 行で m 個の「文字」と「整数」の組が空白区切りで入力されます。 n 個の整数だけをそのまま順に出力してください。
入力される値
n
S1 D1
S2 D2 ... Sn Dn期待する出力
n 個の整数を順に改行区切りで出力してください。条件
・1 ≦ n ≦ 10,000
・-10,000 ≦ D_i ≦ 10,000 (ただし、1 ≦i ≦ n)
・S_iは1つの半角英文字
自分の解答
n = gets.to_i n.times do s, d = gets.split.map(&:to_i) puts d end # 正解!
感想
レベルアップ問題集は公開自由な代わりに「チケット」というものを消費します。スキルチェックをするともらえるので無料ではありますが、6枚までしか持てないのと、問題を見るのに1枚、解答を見るのに1枚それぞれ必要なので、一気にできないのが少し残念。
今回の問題の解き方は、下記記事が参考になります。