패턴 매칭을 하는 문제. 전치와 후치를 비교할 때 전치 확인 후 중복 제거를 위해 비교할 문자열 s에서 전치를 제거할 필요가 있다.
abc*cda
에서abcda
는 매칭이 안 되는 문자열이기 때문이다.
import sys
n = int(sys.stdin.readline().rstrip())
pattern = sys.stdin.readline().rstrip()
pre, post = pattern.split('*')
pre_len = len(pre)
post_len = len(post)
for _ in range(n):
s = sys.stdin.readline().rstrip()
if len(s) >= pre_len and pre == s[:pre_len]:
# 전치 매칭
s = s[pre_len:]
# 중복 제거
if len(s) >= post_len and post == s[-post_len:]: print('DA')
# 후치 모두 일치할 때 패턴 매칭 성공
else: print('NE')
else: print('NE')