티스토리 뷰
https://www.acmicpc.net/problem/1701
KMP 응용 문제입니다.
입력 받은 문자열에서 겹치는 것을 허용하였을 때 2번 이상 검색되는 부분문자열의 최대 길이를 구하는 문제입니다. 전형적인 KMP 알고리즘의 경우 1번 나오면 탐색을 종료하거나 모든 위치를 파악하는데 주로 쓰이지만, 2번의 카운트를 해주는 조건을 추가하면 됩니다.
문자열의 처음부터 구할 수 있는 최대 길이 (2번 이상 카운트 된) 를 max_num 이라 할 때 max_num 이상의 부분 문자열에 대해서만 조사를 진행하면 됩니다.
코드는 다음과 같습니다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 2661 좋은수열 C++ (0) | 2021.11.28 |
---|---|
백준 1422 숫자의 신 C++ (0) | 2021.11.25 |
백준 14466 소가 길을 건너간 이유6 c++ (0) | 2021.11.18 |
백준 4811 알약 C++ (0) | 2021.11.06 |
백준 14226 이모티콘 C++ (0) | 2021.11.04 |
댓글