AtCoder Beginner Contest 168 提出コード(Ruby)

ABC 7回目の参加

5月17日に開催されたAtCoder Beginner Contest 168Rubyで参加。

今回もAC(正解)はA・B問題だけ。

各問題の制約や入力・出力例はリンク先(AtCoderのサイト)へ。

A - ∴ (Therefore)

問題文
いろはちゃんは、人気の日本製ゲーム「ÅtCoder」で遊びたい猫のすぬけ君のために日本語を教えることにしました。
日本語で鉛筆を数えるときには、助数詞として数の後ろに「本」がつきます。この助数詞はどんな数につくかで異なる読み方をします。具体的には、 999 以下の正の整数 N について、「N 本」と言うときの「本」の読みは
N の 1 の位が 2,4,5,7,9 のとき hon
N の 1 の位が 0,1,6,8 のとき pon
N の 1 の位が 3 のとき bon
です。
N が与えられるので、「N 本」と言うときの「本」の読みを出力してください。

入力
入力は以下の形式で標準入力から与えられる。
N

A - ∴ (Therefore)

提出したコード

n = gets.chomp[-1]
case n.to_i
when 3
  puts "bon"
when 0
  puts "pon"
when 1
  puts "pon"
when 6
  puts "pon"
when 8
  puts "pon"
else
  puts "hon"
end

結果:AC(正解) 実行時間:53 ms

B - ... (Triple Dots)

問題文
英小文字からなる文字列 S があります。
S の長さが K 以下であれば、S をそのまま出力してください。
S の長さが K を上回っているならば、先頭 K 文字だけを切り出し、末尾に ... を付加して出力してください。

入力
入力は以下の形式で標準入力から与えられる。
K
S

B - ... (Triple Dots)

提出したコード

n = gets.to_i
s = gets.chomp
puts n >= s.size ? s : s[0, n] + "..."

結果:AC(正解) 実行時間:52 ms

感想

A問題、はじめchompを忘れてWA(間違い)やってしまった。ACのコードもよろしくない。caseは複数条件を,で書けるんだった。

制御構造 (Ruby 2.7.0 リファレンスマニュアル)

B問題のコードはいい感じな気がする。