ABC187 - Atcoder/Python精進のための解説メモ

カレンダーアイコン
2021/09/21

ABC187 - A.Large Digits

AtCoder公式 | ABC187 - A.Large Digits

解答

def convert_s(x):
    return sum(map(int, x))

a, b = input().split()
print(max(convert_s(a), convert_s(b)))

別解

sa, sb = map(lambda x: sum(map(int, x)), input().split())
print(max(sa, sb))

要点解説メモ

  • 型変換の練習問題
  • 同じ処理はちゃんと関数とかmapとかで切り出したくなるけど、早く書くのには向いてなさそう

ABC187 - B.Gentle Pairs

AtCoder公式 | ABC187 - B.Gentle Pairs

解答

n = int(input())
aaa = [tuple(map(int, input().split())) for _ in range(n)]
ans = 0
for i in range(n):
    for j in range(i):
        if abs(aaa[i][1] - aaa[j][1]) <= abs(aaa[i][0] - aaa[j][0]):
            ans += 1
print(ans)

要点解説メモ

  • 2点を通る傾き (y1-y2)/(x1-x2) で出す数学のやつ
  • 常に x1≠x2 なので気にせず全探索でいける

ABC187 - C.1-SAT

AtCoder公式 | ABC187 - C.1-SAT

解答

n = int(input())
sss = set(input() for _ in range(n))
ans = 'satisfiable'
for s in sss:
    if '!' + s in sss:
        ans = s
        break
print(ans)

要点解説メモ

  • pythonの処理遅いので、基本的に順序が関係ない場合は、hashsetで処理する
  • 2*10**5くらいの計算量はlistとかだと間に合わない

ABC187 - D.

AtCoder公式 | ABC187 - D.

解答

まだ解いていません

要点解説メモ