문자열 밀기

han.user();·2023년 4월 8일
0

프로그래머스

목록 보기
54/87
post-thumbnail

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가 같은지를 비교합니다.

profile
I'm still hungry.

0개의 댓글