[백준/BOJ] 백준 4354번 : 문자열 제곱
www.acmicpc.net/problem/4354 4354번: 문자열 제곱 알파벳 소문자로 이루어진 두 문자열 a와 b가 주어졌을 때, a*b는 두 문자열을 이어붙이는 것을 뜻한다. 예를 들어, a="abc", b="def"일 때, a*b="abcdef"이다. 이러한 이어 붙이는 것을 곱셈으로 생각한다 www.acmicpc.net KMP알고리즘을 이용하여 문제를 해결했다. pi에 해당 길이까지 접두사도 되고, 접미사도 되는 문자열의 최대 길이를 저장하고, s.size() - pi[s.size() - 1]를 통해 a의 길이(a_size)를 구한뒤, s.substr(0, a_size)를 통해 a를 구하고, 여기서 구한 a로 s=a^n가 가능한지 판단하고(불가능하다면 a는 s이다), 문제를 해결했다. 코드 ..
2021.02.07