practivceAlgorithm/백준

[백준][Python] 5534 간판

findTheValue 2021. 9. 5. 17:30

처음과 끝을 찾고 그 사이를 같은 간격으로 조사하는 방법.

 

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)