ABC_312解説
この記事は何
この記事は自らの復習用としてatcoder beginner contestを開設したものになります。一旦はC問題まで解説していますが、後程D問題以降も解説していければと思います。
問題の解説
A問題
A問題の公式解説のリンクはこちら
A問題はいつも通り言われたことを愚直に表現すればACが出るはず!!自分のコードはこちら。
abc_312_a.py
S = input()
condition = ['ACE','BDF','CEG','DFA','EGB','FAC','GBD']
ans = 'Yes' if S in condition else 'No'
print(ans)
B問題
B問題の公式解説リンクはこちら
B問題もいつも通り愚直に実装すれば解けるはず!しかし今回の問題には?を比較する実装方法が難しいように思えました。浮かんだ案としては、Sの対象部分を抜き出す際に?を埋め込むもの、j比較条件として. or #にするものなどありましたが、実際は?は比較しなければいいというのが最適解なのではないかと思います。公式もその解き方でしたし。
abc_312_b.py
N, M = map(int, input().split())
S = []
for _ in range(N):
S.append(input())
tak_code = []
#なぜかマークダウンでタクコードがうまくきさいできなかったので空としています。(多分エスケープの問題)
n, m = len(tak_code), len(tak_code[0])
for X in range(N-n+1):
for Y in range(M-m+1):
ans = True
for dx in range(n):
for dy in range(m):
ans &= S[X+dx][Y+dy] == tak_code[dx][dy] if tak_code[dx][dy] != '?' else True
if ans:
print(X+1,Y+1)
C問題
C問題の公式解説リンクはこちら
後程更新します!
abc_312_c.py