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問題は解けませんでした、、、。