0
0

More than 1 year has passed since last update.

ABC_312解説

Last updated at Posted at 2023-07-31

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

0
0
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
0
0