n = int(input())
patten = input()
file = []
for i in range(n):
file.append(input())
a = patten.split('*')
for i in range(n):
if file[i][0:len(a[0])] == a[0] and file[i][len(file[i])-len(a[1]):len(file[i])] ==a[1]:
if len(a[0]) <= len(file[i])-len(a[1]):
print('DA')
else:
print('NE')
else:
print('NE')
https://www.acmicpc.net/problem/9996
풀이
입력된 patten을 *를 기준으로 나눠서 patten[0], patten[1]로 나눕니다.
그 이후 file에서 patten[0]과 file 앞부분, patten[1]과 file 뒷부분이 일치하는지 체크하고
일치하면 그 나머지 문자열의 길이가 겹치지 않는지 확인한다.
만약 모든 조건이 참이면 DA를 출력하고 나머지는 NE를 출력한다.
'백준 알고리즘' 카테고리의 다른 글
파이썬) 백준 알고리즘 | 10327번 : 피보나치 문제해결전략 (0) | 2022.07.25 |
---|---|
파이썬) 백준 알고리즘 | 12904번 : A와 B (0) | 2022.07.25 |
파이썬) 백준 알고리즘 | 11442번 : 홀수번째 피보나치 수의 합 (0) | 2022.07.22 |
파이썬) 백준 알고리즘 | 1629번 : 곱셈 (0) | 2022.07.10 |
파이썬) 백준 알고리즘 | 1932번 : 정수 삼각형 (0) | 2022.07.05 |
댓글