0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

超初心者がAtcoder ProblemsのB問題を86から96まで解いてみる件【10割自分用】

Posted at

解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!

B - 1 21

https://atcoder.jp/contests/abc086/tasks/abc086_b
practice.py
a,b = input().split()
num = a+b
if (int(num)**0.5).is_integer():
    print("Yes")
else:
    print("No")

数字を0.5乗してルートを乗っけるのと同じことをして、もし平方数だったら、integer型になるのでis_integer()で判定する

B - Coins

https://atcoder.jp/contests/abc087/tasks/abc087_b
practice.py
a = int(input())
b = int(input())
c = int(input())
x = int(input())
cnt = 0
for i in range(a+1):
    for j in range(b+1):
        for k in range(c+1):
            if 500*i + 100*j + 50*k == x:
                cnt += 1
print(cnt)

脳死全探索で解決、a,b,cの数も含めないと行けないのでrangeの数に1を足しています。

B - Card Game for Two

https://atcoder.jp/contests/abc088/tasks/abc088_b
practice.py
n = int(input())
cards = sorted(list(map(int, input().split())), reverse=True)
a = 0
b = 0
turn = 0
for card in cards:
    if turn % 2 == 0:
        a += card
    else:
        b += card
    turn += 1
print(a-b)

アリ姐からボブの順で強いカードをとってくので、受け取ったカードの数字をリストにしてsortで大きい順に並べ替える。そしてturn変数を作って順番の判定をする

B - Hina Arare

https://atcoder.jp/contests/abc089/tasks/abc089_b
practice.py
n = int(input())
colours = set(input().split())
if len(colours) == 3:
    print("Three")
else:
    print("Four")

set型にすれば勝手に重複を消してくれるのよ、そしてlenで要素の数を求めてそのまま出力するだけ

B - Palindromic Numbers

https://atcoder.jp/contests/abc090/tasks/abc090_b
practice.py
a,b = map(int, input().split())
cnt = 0
for i in range(a,b+1):
    i = str(i)
    if i[0] == i[4]:
        if i[1] == i[3]:
            cnt += 1
print(cnt)

aもbも5桁と約束されてるので一度str型にして1桁目と5桁目が一緒に数字か等を判定していく

B - Two Colors Card Game

https://atcoder.jp/contests/abc091/tasks/abc091_b
practice.py
n = int(input())
blue = [input() for _ in range(n)]
m = int(input())
red = [input() for _ in range(m)]
ans = 0
for i in range(n):
    gain = blue.count(blue[i])
    lose = red.count(blue[i])
    ans = max(ans, gain-lose)
print(ans)

ansをあらかじめ0にしておくことで絶対に負の数になることがない。gainで青いカードにある特定の文字列の数を調べる、そしてloseで赤いカードにある特定の文字列の数を調べる。最後に現在の最大値と比べる

B - Chocolate

https://atcoder.jp/contests/abc092/tasks/abc092_b
practice.py
n = int(input())
d,x = map(int, input().split())
spans = [int(input()) for _ in range(n)]
total = x
for i in range(n):
    total += ((d-1) // spans[i]) + 1
print(total)

1日目は全員チョコを食べられるので、日数から1日目を抜くということでd-1にしてその後にそれぞれの人のチョコレートを食べられる日にちの間隔で割る。最後に1日目に食べられるチョコレートの数を加える

B - Small and Large Integers

https://atcoder.jp/contests/abc093/tasks/abc093_b
practice.py
a,b,k = map(int, input().split())
if (b-a+1) < (2*k):
    numbers = [num for num in range(a,b+1)]
else:
    numbers1 = [num for num in range(a,a+k)]
    numbers2 = [num for num in range(b-k+1,b+1)]
    numbers = numbers1 + numbers2

for number in numbers:
    print(number)

最初に重複する番号がないかを判定する(例えば、入力値が4 8 3の場合は456と678で6が重複してしまう)、もし重複がある場合は範囲内のすべての数を出力するだけ。もし無い場合は最初にaからa+k番目までに大きい数を求めて、次にb-k+1からb+1までに大きい数を求めて、最後に合体する

B - Toll Gates

https://atcoder.jp/contests/abc094/tasks/abc094_b
practice.py
n,m,x = map(int, input().split())
charge = list(map(int, input().split()))
a = len([i for i in charge if i <= x])
b = len([i for i in charge if i >= x])
print(min(a,b))

一度、初期位置より前にある料金所の数と初期位置より後にある料金所の数を調べ上げて、minメソッドを使って少ない方をとって出力する

B - Bitter Alchemy

https://atcoder.jp/contests/abc095/tasks/abc095_b
practice.py
n,x = map(int, input().split())
ing = [int(input()) for _ in range(n)]
total = n
x -= sum(ing)
total += (x//min(ing))
print(total)

すべての種類のドーナツを絶対一個は作らないといけないので、totalの初期値をドーナツの種類と同じ数にして、xから全てのドーナツを一個ずつ作るのに必要な材料を引く。そして材料が一番少ないドーナツを作りまくる!

B - Maximum Sum

https://atcoder.jp/contests/abc096/tasks/abc096_b
practice.py
numbers = list(map(int, input().split()))
k = int(input())
d = max(numbers)
numbers.remove(max(numbers))
for i in range(k):
    d *= 2
numbers.append(d)
print(sum(numbers))

一番をでかい数を操作できる回数2倍し続ければいいだけです、コードが不細工すぎる...

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?