[Python]AtCoder Beginner Contest 164を解いてみた(A~C)

プログラミング

AtCoder Beginner Contest 164にPythonで参加しました。

A – Sheep and Wolves

問題

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

自分の回答

S, W = map(int, input().split())

if W >= S:
  print("unsafe")
else:
  print("safe")

WとSを比べれば良いですね。

B – Battle

問題

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

自分の回答

A, B, C, D = map(int, input().split())
takahashi = 0
aoki = 0

while A > 0:
  A = A - D
  takahashi += 1

while C > 0:
  C = C - B
  aoki += 1

if aoki <= takahashi:
  print("Yes")
else:
  print("No")

whileを使って、それぞれの倒されるまでの回数を求めます。
倒される回数が等しい場合は、高橋君が先行なので、高橋君が勝ちます。

C – gacha

問題

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

自分の回答

N = int(input())
s = [input() for i in range(N)]
s_uni = list(set(s))

print(len(s_uni))

set型は重複した要素をもたないデータ型であるため、set()にリストを渡せば、重複を削除したものを渡してくれますので、そのリストの要素の数を出力すればいいです。

感想

C問題がC問題かというくらい簡単でしたね。早い段階でD問題に取り組んだのですが、D問題は解けませんでした、、、。

タイトルとURLをコピーしました