ABC201 - Atcoder/Python精進のための解説メモ
2022/12/27
ABC201 - A.Tiny Arithmetic Sequence
AtCoder公式 | ABC201 - A.Tiny Arithmetic Sequence解答
aaa = list(map(int, input().split()))
ans = 'No'
if sum(aaa) % 3 == 0:
if sum(aaa) // 3 in aaa:
ans = 'Yes'
print(ans)
要点解説メモ
- 等差数列の場合、平均をとった値が真ん中の数字になることを利用する
ABC201 - B.Do you know the second highest mountain?
AtCoder公式 | ABC201 - B.Do you know the second highest mountain?解答
n = int(input())
sstt = []
for _ in range(n):
s, t = input().split()
sstt.append([int(t), s])
sstt.sort()
print(sstt[-2][1])
要点解説メモ
- 多次元配列は、全体ソートしたときに1つ目の値でソートされる
- あらかじめ入れ替えておくとシンプルで良さそう
ABC201 - C.Ringo's Favorite Numbers 2
AtCoder公式 | ABC201 - C.Ringo's Favorite Numbers 2解答
s = input()
maru_num = set()
q_num = set()
batsu_num = set()
ans = 0
for i, s in enumerate(s):
if s == 'o':
maru_num.add(str(i))
elif s == '?':
q_num.add(str(i))
else:
batsu_num.add(str(i))
for i in range(10000):
pin = str(i).zfill(4)
if all(m in pin for m in maru_num):
pass
else:
continue
if all(b not in pin for b in batsu_num):
pass
else:
continue
ans += 1
print(ans)
要点解説メモ
- 4桁の暗証番号すべてにおいて、「○の数字がすべて存在する」かつ「☓の数字がすべて存在しない」ものを数えればよい
- ?の数字は使っても使わなく良いので、上記の数え方なら関係ない
- 場合分けの数が少ないので、がんばって場合分けしてもよさそう
ABC201 - D.
AtCoder公式 | ABC201 - D.解答
まだ解いていません