[Programmers] Lv0 문자열 밀기 JAVA

2023. 1. 19. 22:31CS/자료구조 & 알고리즘

728x90

문제 출처

[프로그래머스 코딩 테스트 연습]

https://school.programmers.co.kr/learn/courses/30/lessons/120921

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 풀이

  • 최대 검사 횟수는 위에 보이는 것처럼 문자열의 길이의 -1 이다. (소스 코드에서는 0회 부터 시작하고 검사의 순사상 문자열 길이 만큼만 반복해준다.)
  • 최대 검사 횟수를 만큼 반복하여 문자열을 밀어 B와 비교를 한다
  • 비교했을시 같으면 해당 횟수를 리턴한다.
  • 만약 최대 검사 횟수가 넘어가면 -1을 리턴한다.

 

소스 코드

class Solution {
    
    public int solution(String A, String B) {
        StringBuilder sbA = new StringBuilder(A);

        for (int index = 0; index < A.length(); index++) {
            if (B.equals(sbA.toString()))
                return index;
            char save = sbA.charAt(sbA.length()-1);
            sbA.deleteCharAt(sbA.length()-1);
            sbA.insert(0, save);
        }

        return -1;
    }
}
728x90