처음과 끝을 찾고 그 사이를 같은 간격으로 조사하는 방법.
import sys
input = sys.stdin.readline
def check(string):
l = len(string)
for start_idx in range(l):
if string[start_idx] == name[0]:
for end_idx in range(start_idx,l):
if string[end_idx]==name[-1]:
avg_gap = (end_idx-start_idx)//(n-1)
cnt = 0
while cnt < n:
if string[start_idx+avg_gap*cnt]==name[cnt]:
cnt += 1
continue
break
else:
return 1
return 0
N = int(input())
name = input().rstrip()
n = len(name)
kanbans = list(input().rstrip() for _ in range(N))
cnt = 0
for kanban in kanbans:
cnt += check(kanban)
print(cnt)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 1289 트리의 가중치 (0) | 2021.09.06 |
---|---|
[백준][Python] 16168 퍼레이드 (0) | 2021.09.05 |
[백준][Python] 3108 로고 (0) | 2021.09.05 |
[백준][Python] 2571 색종이3 (0) | 2021.09.04 |
[백준][Python] 2644 촌수계산 (0) | 2021.09.04 |