LoginSignup
3
2

More than 3 years have passed since last update.

PythonでABC158のA~Cを解く

Last updated at Posted at 2020-03-15

はじめに

忘れてて参加できなかったので解く。深夜テンションで解いた + 深夜に書いてるので、文が崩壊しているかもです。

A問題

問題

考えたこと
Sの中にあるA,Bを数えればいい。全てA,Bであるときだけ、Noにすればいい。。str.countでカウントしてifにつっこんだ。

s = str(input())
station_a = s.count('A')
station_b = s.count('B')
if station_a != 3 and station_b != 3:
    print('Yes')
else:
    print('No')

B問題

問題

考えかた
A+Bの組がNに何個あるかを数えればよい。$A+Bの組の数*A$だけでは、余りの個数を含んでいません。ですので$N % (A + B)$で余りを計算してそれを足します。と思ったら余りが、Aよりも大きくなる場合もあるのでmin(a,(n % (a + b)))を足してます。

n, a, b =map(int,input().split())
p = n // (a + b)
ans = a * p + min(a,(n % (a + b)))
print(ans)

C問題

問題
1WA
考えたこと
普通に計算しました。1WA出た理由は、for文のstopを1001ではなくて1000としたからです。このせいで、どちらかが答えが1000になるケースに対応できませんでした。みんなもforのstopには気を付けよう。

<追記>丸めると1009*0.10も100になるので、1010にしないといけない

import math
a, b = map(int,input().split())
ans = []
for i in range(1010): #ここを1000にしてた
    price_8 = math.floor(i * 0.08)
    price_10 = math.floor(i * 0.1)
    if price_8 == a and price_10 == b:
        ans.append(i)

if len(ans) != 0:
    print(min(ans))
else:
    print(-1)

まとめ

簡単なABCくらいなら深夜にでも解けることが分かった。おやすみなさい

3
2
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2