코딩테스트

[백준][Python] 1543 문서 검색

yeeejji 2024. 3. 9. 16:27
728x90

문자열 / 실버 5

 

📄

https://www.acmicpc.net/problem/1543

 

1543번: 문서 검색

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

www.acmicpc.net

 

 

내 풀이

document = input()
word = input()
s = 0
ans = 0

while s + len(word) <= len(document):
    current_document = document[s:]
    if word in current_document:
        s += current_document.index(word) + len(word) # 겹치지 않는 다음 인덱스로 시작 위치 변경
        ans += 1
    else:
        break

print(ans)

 

 

코드 설명

 

s: 단어를 검색할 문서의 시작 인덱스

 

탐색 범위가 문서를 벗어나지 않을 때까지 반

while s + len(word) <= len(document):

 

current_document: 시작 인덱스부터 끝까지의 문자열 (검색 대상이 되는 현재 문서)

current_document = document[s:]

 

current_document(현재 문서)에 찾으려는 단어가 존재한다면,

시작 인덱스(s)의 위치를 갱신함

존재하지 않는다면 while문 탈출

if word in current_document:
    s += current_document.index(word) + len(word) # 겹치지 않는 다음 인덱스로 시작 위치 변경
    ans += 1
else:
    break