[백준 5555] 반지
말 그대로 반지처럼 둥근 모양으로 계속 이어지는 문자열이므로 BruteForce Algorithm으로 해결해봅시다.
우리가 찾아야 하는 일종의 패턴 문자열(pattern)이 주어집니다.
그 다음에는 반지 문자열의 개수 N이 주어지며,
길이가 10으로 고정된 반지 문자열들이 N개 입력됩니다.
이때 주의해야할 점은 위에서도 언급하였듯이,
반지처럼 둥근 모양으로 계속 이어지는 circular한 문자열에서 찾아야한다는 점입니다.
이 말인즉슨, 맨 뒷부분의 문자들과 맨 앞부분의 문자들을 연결했을때 pattern과 일치한다면
그 문자열 또한 패턴을 지닌 문자열이 되는 것입니다.
(ex> pattern = ‘XYZ’이고 ring = ‘ZAAAAAAAXY’일 때,
맨 뒷부분 XY와 맨 앞부분 Z를 연결하면 XYZ가 되므로 pattern을 포함합니다.)
따라서, 아예 처음부터 주어진 반지 문자열(ring)을 2번 이어 붙여놓습니다.
(ex> ring = ‘ZAAAAAAAXY’일 때, ring = ‘ZAAAAAAAXYZAAAAAAAXY’)
그 후, 뒤쪽에 중복되는 부분들은 따로 살펴볼 필요 없이
처음에 주어졌던 길이인 10개만 살펴보면 되는 것입니다.
(문자열을 중복하여 붙인 이유는 circular한 경우를 따져보기 위해서이므로)
for문 순회를 마친 이후, 최종적인 cnt를 출력하면 됩니다.
문제 : 백준 5555 - 반지