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

カレンダーアイコン
2021/07/14

ABC191 - A.Vanishing Pitch

AtCoder公式 | ABC191 - A.Vanishing Pitch

解答

v, t, s, d = map(int, input().split())
print('No' if t <= d / v <= s else 'Yes')

要点解説メモ

  • こういう時、比較演算子を連結できるpythonは良いよね

ABC191 - B.Remove It

AtCoder公式 | ABC191 - B.Remove It

解答

n, x = map(int, input().split())
aaa = list(map(int, input().split()))
print(*[a for a in aaa if a != x])

要点解説メモ

  • popとかしなくても、条件に合っているリストを作って、普通に出力すれば良さそう
  • print(*[])でリストをそれぞれ出力できるのは便利なので、覚えておくの大事

ABC191 - C.Digital Graffiti

AtCoder公式 | ABC191 - C.Digital Graffiti

解答

h, w = map(int, input().split())
sss = tuple(input() for _ in range(h))
ans = 0
for i in range(h - 1):
    for j in range(w - 1):
        a = (sss[i][j], sss[i][j + 1], sss[i + 1][j], sss[i + 1][j + 1])
        if a.count(".") == 1 or a.count(".") == 3:
            ans += 1
print(ans)

要点解説メモ

  • 頂点を数えたいので、点(i, j)が頂点の条件を考える
  • ある4マスに注目したときに、"#"が1or3つなら頂点が1つある
  • 解説によると、自己交叉がない(▷◁こういうかんじの自身の交叉がない状態のことぽい)ので、"#"が2つの場合は対角線上に"#"が配置されずに隣り合う。だから2のときは頂点にならない。あんまり想定してなかったけどたしかに。

ABC191 - D.

AtCoder公式 | ABC191 - D.

解答

まだ解いていません

要点解説メモ