-
[BOJ 1543, Python 3] 문서 검색알고리즘/BOJ 2021. 7. 30. 18:38반응형
https://www.acmicpc.net/problem/1543
풀이
앞에서부터 단어가 있는지 확인하면서 답을 구하면 됩니다.
이게 왜 가능하냐면 만약 앞에 단어(A)가 있지만, 조금 뒤에 있는 단어(B)를 선택한다고 해봅시다.
그 후에 다음 단어(C)를 선택할 때, B를 선택했을 때 C가 선택 가능하다면 A를 선택하고 C를 선택할 수도 있다는 것입니다.
위와 같은 상황인 단어 A와 B. 그리고 다음 단어 D가 있다고 할 때, 단어 길이 때문에 B를 선택하면 D를 선택할 수 없고, A를 선택하면 D를 선택할 수 있는 상황이 존재할 수도 있습니다.
그러므로 무조건 먼저 단어가 나온 것을 세면 최적의 해가 됩니다.
코드는 단어를 발견하면 그 길이만큼 건너뛰고 다시 탐색하는 코드입니다.
코드
1234567891011121314s = input()k = input()x, y = 0, len(k)ans = 0while y <= len(s):if k == s[x:y]:x += len(k)y += len(k)ans += 1else:x += 1y += 1print(ans)cs 반응형'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ 1783, Python 3] 병든 나이트 (0) 2021.07.31 [BOJ 1758, Python 3] 알바생 강호 (0) 2021.07.31 [BOJ 19939, Python 3] 박 터뜨리기 (0) 2021.07.30 [BOJ 16435, Python 3] 스네이크 버드 (0) 2021.07.30 [BOJ 1086, C++] 박성원 (0) 2021.07.29