문자 "A"와 "B"로 이루어진 문자열 myString과 pat가 주어집니다. myString의 "A"를 "B"로, "B"를 "A"로 바꾼 문자열의 연속하는 부분 문자열 중 pat이 있으면 1을 아니면 0을 return 하는 solution 함수를 완성하세요.
import java.util.Arrays;
class Solution {
public int solution(String myString, String pat) {
int answer = 0;
String[] strArr = myString.split("");
String[] changedArr = new String[myString.length()];
for (int i = 0; i < myString.length(); i++) {
if (strArr[i].equals("A")) {
changedArr[i] = "B";
} else {
changedArr[i] = "A";
}
}
String changedStr = String.join("", changedArr); //1.
if (changedStr.contains(pat)) {
answer = 1;
}
return answer;
}
}
처음엔 Arrays.toString(changedArr)을 이용하여 문제를 풀려고 접근을 했었다
Arrays.toString(changedArr)은 배열의 내용을 문자열로 반환하는 데 사용
그러나 이 경우에는 배열의 각 요소가 ,와 공백으로 구분되어진 형태로 문자열로 변환됨
ex) changedArr이 ["B", "A", "A", "B", "B"] -> Arrays.toString(changedArr)는 "[B, A, A, B, B]"를 반환
String.join("", changedArr)를 사용하면 각 배열 요소 사이에 구분자가 삽입되지 않은 형태로 문자열이 생성
changedArr이 ["B", "A", "A", "B", "B"] -> String.join("", changedArr)는 "BAABB"를 반환
즉, Arrays.toString(changedArr)는 배열을 표현하는데 사용되며 각 요소 사이에 구분자가 포함되어 있는 반면, String.join("", changedArr)는 배열의 내용을 구분자 없이 하나의 문자열로 결합하는 차이점이 있다