풀이
- StringBuilder를 사용해서 문자를 추가하고 초기화하여 해결.
- 여기서 기존 문자간의 비교는 equals() 메서드를 사용했지만
- StringBuilder와의 문자열과의 비교는 equals()로는 안되고
- contentEquals()로 해야 한다는 것을 알게 되었다.
- 그리고 초기화는 sb.delete()로 시작과 끝 인덱스 값을 넣어주기.
- 그런데 이렇게 풀지 않고 그냥 A를 두배로 늘려서 B가 어디에 있는지 indexOf()로 찾는 방법도 있어서
- 아래 두 번째 해결 방법으로 풀 수도 있음.
class Solution {
public int solution(String A, String B) {
int ln = A.length();
StringBuilder sb = new StringBuilder();
for (int i=0; i<ln; i++) {
boolean state = true;
for (int j=0; j<ln; j++) {
sb.append(B.charAt((i+j)%ln));
if (!A.substring(0,j+1).contentEquals(sb)) {
state = false;
break;
}
}
if (state) return i;
sb.delete(0,ln);
}
return -1;
}
}
class Solution {
public int solution(String A, String B) {
return B.repeat(2).indexOf(A);
}
}
'알고리즘' 카테고리의 다른 글
[프로그래머스, 자바] 자릿수 더하기 (0) | 2024.03.20 |
---|---|
[프로그래머스, 자바] 유한소수 판별하기 (0) | 2024.03.20 |
[프로그래머스, 자바] 배열 만들기 2 (3) | 2024.03.19 |
[프로그래머스, 자바] 특이한 정렬 (1) | 2024.03.19 |
[프로그래머스, 자바] 배열 자르기 (0) | 2024.03.16 |