※スキルチェック問題ではありません。
規約により公式の解答コードそのままはよろしくないので、
オリジナルのコードにしています。
詳しくはコチラ
なるべくわかりやすい解説を付けました
問題4 数字の文字列操作(0埋め) (paizaランク D 相当)
0 ~ 999 の整数 n が与えられます。 n が 3 桁の数である場合には n をそのまま出力し、 n が 2 桁の数である場合には n の先頭に 0 をひとつ、 1 桁の数である場合には n の先頭に 0 をふたつ加えたものを出力してください。
- 入力される値
- 入力は以下のフォーマットで与えられます。
n
1 行目に整数 n が与えられます。
n
入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。
- 期待する出力
- n を 3 桁で 0 埋めしたものを出力してください。
末尾に改行を入れ、余計な文字、空行を含んではいけません。
- 条件
-
すべてのテストケースにおいて、以下の条件をみたします。 ・0 ≤ n ≤ 999
- 入力例1
-
7
- 出力例1
-
007
- 入力例2
-
123
- 出力例2
-
123
解答 文字列として受け取らないとうまくいきません
#1行目の入力値(文字列)を変数に代入する strings = gets.chomp #1桁の時00を追加する if strings.size == 1 puts "00#{strings}" #2桁の時0を追加する elsif strings.size == 2 puts "0#{strings}" #その他はそのまま出力する else puts strings end
問題5 数字の文字列操作(時刻1) (paizaランク D 相当)
時刻を表す長さ 5 の文字列 S が “XX:XX” の形式で与えられます。入力された時刻を時と分に分け、時、分の順番で改行区切りで出力してください。
- 入力される値
- 入力は以下のフォーマットで与えられます。
S
1 行目に文字列 S が与えられます。
S
S は “XX:XX” という形をしており、 “:” の左側は時を、右側は分を表します。時や分が一桁である場合、十の位は 0 で埋められます。また、 00:00 から 23:59 までの 24 時間表記を採用しています。
入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。
- 期待する出力
- 入力された時刻を時と分に分け、時、分の順番で改行区切りで出力してください(2行出力する)。その際、入力値の十の位が 0 である場合には一の位だけ出力してください。
末尾に改行を入れ、余計な文字、空行を含んではいけません。
- 条件
- 入力例1
-
12:34
- 出力例1
-
12 34
- 入力例2
-
01:03
- 出力例2
-
1 3
解答 (入力例1で解説)
#1行目の入力値を:(コロン)の部分で分割して変数に数値として代入する[12, 34] strings = gets.split(':').map(&:to_i) #出力する puts strings