728x90


이 문제는 크게 어려울 것은 없지만 중요한 것은 중복을 방지하는 것이다. 아래와 같은 그림에서도 만약 중복을 생각하지 않고 푼다면 index가 2인 자리의 a부터 또다시 단어가 찾아져 원하는 답보다 더 크게 나올 것이다.

따라서 중요한 포인트는 start 기준점을 잡아서 한 칸씩 오른쪽으로 움직이면서 문서에서 단어를 검색하고 그 단어가 나왔다면 start 기준점을 단어의 길이만큼 올려주는 것이다. 

 

 

 

 

 

 

 

data = input()
target = input()
start = 0
count = 0

while start <= len(data) - len(target):
    if data[start:start+len(target)] == target:
        count += 1
        start += len(target) #단어가 중복되지 않게 하기 위해서!
    else:
        start += 1 #원하는 문자열이 없다면 한칸씩 옆으로 이동

print(count)

 

복사했습니다!