LoginSignup
5
3

More than 5 years have passed since last update.

AtCoder Beginners SelectionをPython3で解くメモ

Last updated at Posted at 2018-12-06

1週間ほど前にABSを解いていた時の軌跡をメモ.

ABC086A

REを二度重ねた後AC.
楽しくなってくる.

main.py
a, b = map(int, input().split())
c = a * b
if c % 2 == 0:
    print('Even')
else:
    print('Odd')

ABC081A

一問目でコツを掴んだと思いきや,3回RE後AC.

main.py
S = input()
li = [int(x) for x in list(S)]
print(li[0] + li[1] + li[2])

ABC081B

一回WAの後AC.
少し進歩してきた.

main.py
N = int(input())
A = list(map(int, input().split()))
flg = 'True'
counter = 0

while flg == 'True':
    counter += 1
    for i in range(N):
        if A[i] % 2 == 0:
            A[i] = A[i] / 2
        else:
            flg = 'False'
print(counter - 1)

ABC087B

ここで満を辞して一発AC.
快感...

main.py
A = int(input())
B = int(input())
C = int(input())
X = int(input())
true_number = 0

for i in range(1, A+1):
    for j in range(1, B+1):
        for k in range(1, C+1):
            if X == 500 * i + 100 * j + 50 * k:
                true_number += 1
print(true_number)

ABC083B

と思いきや3連続WA...
ここらへんで疲れてきて一旦休憩

main.py
N, A, B = map(int, input().split())
N_list = []
for i in range(1, N+1):
  N_num = [int(x) for x in str(i)]
  N_num_sum = sum(N_num)
  if (A <= N_num_sum and N_num_sum <= B):
    N_list.append(i)
S = sum(N_list)
print(S)

ABC088B

再開
リフレッシュしたはずが分からず,他の人の回答をガン見.
俺才能ないんじゃね?状態

main.py
N = int(input())
card = list(map(int, input().split()))
card.sort(reverse=True)
Alice_card = []
Bob_card = []
for i in range(0, N):
  if 0<= i*2 <= N-1:
    Alice_card.append(card[2*i])
  if 0<= i*2+1 <= N-1:
    Bob_card.append(card[2*i+1])
Alice_point = sum(Alice_card)
Bob_point = sum(Bob_card)
Point = Alice_point - Bob_point
print(Point)

ABC085B

あれ?解ける,,,解けるぞーーー!!
一発AC
ワイ,天才なのでは?

main.py
N = int(input())
mochi_d = []
for i in range(0, N):
  mochi_d.append(int(input()))
mochi_d_uni = list(set(mochi_d))
mochi_d_uni.sort(reverse=True)
num = len(mochi_d_uni)
print(num)

ABC085C

初めてのC問題だが,勢いに乗って1WA後AC
ここら辺から調子に乗り始める

main.py
N, Y = map(int, input().split())
Osatsu = [[-1, -1, -1]]
ok = "False"
for i in range(0, N+1):
  if ok == "True":
    break
  for j in range(0, N-i+1):
    senyen = N-i-j
    Otoshidama = i*10000 + j*5000 + senyen*1000
    if Otoshidama == Y:
      Osatsu.clear()
      Osatsu.append([i, j, senyen])
      ok = "True"
      break

print(Osatsu[0][0], Osatsu[0][1], Osatsu[0][2])

ABC049C

伸びきった鼻をへし折られる.
5時間ほど考えて,結局分からず答えを見る.
ツレェー

main.py
s = input()
s = s.replace('eraser', '')
s = s.replace('erase', '')
s = s.replace('dreamer', '')
s = s.replace('dream', '')
if s == '':
  print('YES')
else:
  print('NO')

ABC086C

この問題で競技プログラミングの恐ろしさに気づく
TLE連発して解けない
ファー

main.py
import sys
N = int(input())
for _ in range(N):
  time, x, y = (map(int, input().split()))
  if time < x + y or (time + x + y) % 2 != 0:
    print ("No")
    sys.exit()
print("Yes")

このころに比べたら少しだけましになった.
問題は,プログラミングに関する知識不足.
たくさん解けば身につくのか?

5
3
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
5
3