프로그래머스 문자열 밀기 문제

class Solution {
    public int solution(String A, String B) {
        int answer = -1;
        StringBuilder sb = new StringBuilder(A);
        for(int i=0; i<A.length(); i++){
            if(sb.toString().equals(B)){
                answer = i;
                break;
            }
            sb.insert(0, sb.charAt(sb.length()-1));
            sb.delete(sb.length()-1, sb.length());
        }
        return answer;
    }
}

 

StringBuilder : 문자열을 빈번하게 변경해야할 때 사용

- 문자열 A 길이만큼 for문 실행

- 만약 sb문자열과 B문자열이 같다면 answer에 i를 초기화 한다.(i는 A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수)

- sb문자열 0번째 자리에 sb문자열 마지막 자리 문자를 넣는다, sb문자열 마지막 자리 문자를 삭제한다.

 = sb 문자열 각 문자를 오른쪽으로 한 칸씩 밀기.