public class Solution {
public int solution(String A, String B) {
// A와 B의 길이가 다르면 -1을 반환한다.
if (A.length() != B.length()) {
return -1;
}
// 문자열 A를 한 칸씩 이동하면서 B와 비교한다.
for (int i = 0; i < A.length(); i++) {
// A를 i만큼 오른쪽으로 이동한 문자열과 B가 같으면 i를 반환한다.
if ((A.substring(A.length()-i) + A.substring(0, A.length()-i)).equals(B)) {
return i;
}
}
// A를 이동하는 횟수를 찾지 못하면 -1을 반환한다.
return -1;
}
}
위 코드에서 A.substring(A.length()-i) + A.substring(0, A.length()-i)는 문자열 A를 i만큼 오른쪽으로 이동시킨 문자열을 나타냅니다.
A.substring(A.length()-i)는 문자열 A의 마지막 i개의 문자열을 가져오고,
A.substring(0, A.length()-i)는 문자열 A의 나머지 문자열을 가져와서 이어붙입니다.
이렇게 구한 문자열은 A를 i만큼 오른쪽으로 이동한 문자열이 됩니다.
그리고 이 문자열과 B가 같은지를 비교합니다.