ABC 7回目の参加
5月17日に開催されたAtCoder Beginner Contest 168にRubyで参加。
今回も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
提出したコード
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
提出したコード
n = gets.to_i s = gets.chomp puts n >= s.size ? s : s[0, n] + "..."
結果:AC(正解) 実行時間:52 ms
感想
A問題、はじめchomp
を忘れてWA(間違い)やってしまった。ACのコードもよろしくない。case
は複数条件を,
で書けるんだった。
B問題のコードはいい感じな気がする。