반응형
백준 1543번 문서 검색 파이썬 문제 풀이입니다.
문자열을 전체를 훑으며 매칭되는 경우를 검사하는 문제입니다.
이 문제에서 단어와 문서의 일부가 같은지 검사해야 하는 최대 경우의 수는 len(document) - len(word) + 1
번입니다. 하지만, 단어가 중복되어 등장하면 안되기 때문에 검사했을 때 단어가 일치하면 검색하는 단어의 길이만큼 건너뛰어서 검사하면 됩니다. 따라서 i
에 검색하는 단어(word
)의 길이를 더해줍니다. 일치하지 않으면 1만 증가시킵니다. 검사해야하는 최대 경우의 수까지 i
가 도달하면 반복문을 멈추고 결과값을 출력합니다!
# -*- coding: utf-8 -*-
# boj 1743 문서 검색
import sys
if __name__ == "__main__":
document = sys.stdin.readline().strip()
word = sys.stdin.readline().strip()
result = 0
i = 0
while i <= len(document) - len(word):
if (document[i : len(word) + i] == word):
result += 1
i += len(word)
else:
i += 1
print(result)
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] #11401 이항계수3 (Python) (0) | 2023.02.07 |
---|---|
[BAEKJOON] #1202) 보석 도둑 (그리디, 최소힙) (0) | 2023.01.28 |
BAEKJOON #10930) SHA-256 | Python (0) | 2022.06.29 |
BAEKJOON #5397) 키로거 | Python (0) | 2022.06.29 |
BAEKJOON #1904) 01타일 | DP(다이나믹 프로그래밍) | Python (0) | 2022.06.28 |
댓글