문제
1543번: 문서 검색
세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한
www.acmicpc.net


코드
My answer
import math
import sys
input = sys.stdin.readline
doc = input().rstrip()
search = input().rstrip()
i, cnt = 0, 0
while (1):
if (i+len(search) > len(doc)):
break
if (doc[i] == search[0]):
if (doc[i:i+len(search)] == search):
cnt += 1
i += len(search)-1
i += 1
print(cnt)
Another answer
document = input()
word = input()
index = 0
result = 0
while len(document) - index >= len(word):
if document[index:index + len(word)] == word:
result += 1
index += len(word)
else:
index += 1
print(result)
풀이
문서를 확인하면서, 내가 검색한 단어와 첫글자가 동일하면, 검색한 단어의 길이 즉 aaa를 검색했다면 a가 나오는 위치에서 그 자리포함3개를 확인하여, 동일하면 인덱스를 끝지점으로 옮겨준다(중복 검색되지 않도록) 그 외에는 다음글자를 찾는 방식으로 업데이트 하면 된다.
728x90
728x90