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

AtCoder Beginner Contestに3度目の挑戦

4月26日に開催されたAtCoder Beginner Contest 164に参加しました。言語はRubyです。

今回は、A・B・C問題でAC(正解)を出すことができました!D問題は30分ほど考えましたがわかりませんでした。

とりあえず、解答コードです。

AtCoder Beginner Contest 164 問題と提出コード

各問題の制約や入力・出力例はリンク先(AtCoderのサイト)をご覧ください。

A - Sheep and Wolves

A - Sheep and Wolves

問題文
羊が S 匹、狼が W 匹います。
狼の数が羊の数以上のとき、羊は狼に襲われてしまいます。
羊が狼に襲われるならunsafe、襲われないならsafeを出力してください。

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

提出したコード(AC:正解)

s, w = gets.split.map(&:to_i)
puts s <= w ? "unsafe" : "safe"

B - Battle

B - Battle

問題文
高橋君と青木君がモンスターを闘わせます。
高橋君のモンスターは体力が A で攻撃力が B です。 青木君のモンスターは体力が C で攻撃力が D です。
高橋君→青木君→高橋君→青木君→... の順に攻撃を行います。 攻撃とは、相手のモンスターの体力の値を自分のモンスターの攻撃力のぶんだけ減らすことをいいます。 このことをどちらかのモンスターの体力が 0 以下になるまで続けたとき、 先に自分のモンスターの体力が 0 以下になった方の負け、そうでない方の勝ちです。
高橋君が勝つなら Yes、負けるなら No を出力してください。

入力
入力は以下の形式で標準入力から与えられる。
A B C D

提出したコード(AC:正解)

t_hp, t_power, a_hp, a_power = gets.split.map(&:to_f)
puts (a_hp / t_power).ceil <= (t_hp / a_power).ceil ? "Yes" : "No"

C - gacha

C - gacha

問題文
くじ引きを N 回行い、i 回目には種類が文字列 Si で表される景品を手に入れました。
何種類の景品を手に入れましたか?

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

提出したコード(AC:正解)

n = gets.to_i
array = []
n.times { array << gets.chomp }
puts array.uniq.size

感想

初めてC問題までできました!

茶色コーダー(上位40%)目指して頑張りたいと思います。

後日各問題の復習をやります。

(ところで、シンタックスハイライトされてない気がするのはなぜでしょう…?)