본문 바로가기

Study/Java

[프로그래머스(Java)] 문자열 밀기 / substring(). repeat()

 

Level. 0

 

문제

문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다.
이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.

* 제한사항
- 0 < A의 길이 = B의 길이 < 100
- A, B는 알파벳 소문자로 이루어져 있습니다.

 

풀이

class Solution {
    public int solution(String A, String B) {
        int answer = -1;
        String str = A;
        int i = 0;
        for(i=0; i<A.length() ;i++){
            answer++;
            if(str.equals(B)) break;
            str = str.charAt(A.length()-1) + str.substring(0, A.length()-1);
        }
        
        if(i == A.length()) return -1;      
        return answer;
    }
}

 

 

문자열 자르기 - String.substring()

 

public String substring(int startIndex)
  • startIndex 부터 문자열 끝까지를 리턴한다. 
public String substring(int startIndex, int endIndex)
  • startIndex부터 endIndex-1 까지의 문자열을 리턴한다. 

다른 풀이

class Solution {
    public int solution(String A, String B) {
        String tempB = B.repeat(3);
        return tempB.indexOf(A);
    }
}

 

 


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

 

프로그래머스

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

programmers.co.kr