프로그래머스 문자열 바꿔 찾기 java

디하·2023년 12월 2일
0

프로그래머스

목록 보기
3/10
post-thumbnail

문제

문자 "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)는 배열의 내용을 구분자 없이 하나의 문자열로 결합하는 차이점이 있다

profile
🖥️ ⌨️🖱️🩵

0개의 댓글