문자열을 오른쪽으로 한칸씩 밀었을 때 문자열 A와 B가 같아지는 최솟값 출력
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
String str1 = sc.next();
String str2 = sc.next();
int count = 0;
boolean flag = true;
while (flag) {
str2 = str2.substring(1, str2.length()) + str2.substring(0, 1);
count++;
if(str1.equals(str2)){
flag = false;
}
if(count >= str1.length()){
count = -1;
flag = false;
}
}
System.out.println(count);
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 문자열을 입력받습니다.
String a = sc.next();
String b = sc.next();
int len = a.length();
int cnt = 0;
// 문자열 a를 우측으로 한 칸씩 밀어보면서 문자열 b와 같아지는지 확인합니다.
for(int i = 0; i < len; i++) {
// 문자열을 오른쪽으로 한 칸 쉬프트합니다.
a = a.substring(len - 1, len) + a.substring(0, len - 1);
cnt++;
// 문자열이 같을 경우 민 횟수를 출력합니다.
if(a.equals(b)) {
System.out.println(cnt);
break;
}
// 만약 불가능하다면 -1을 출력합니다.
if(i == len - 1)
System.out.println(-1);
}
}
}