1 분 소요

문제 설명

프로그래머스 181864번 문자열 바꿔서 찾기

문자 “A”와 “B”로 이루어진 문자열 myStringpat가 주어집니다. myString의 “A”를 “B”로, “B”를 “A”로 바꾼 문자열의 연속하는 부분 문자열 중 pat이 있으면 1을 아니면 0을 return 하는 solution 함수를 완성하세요.

제한 사항

  • 1 ≤ myString의 길이 ≤ 100
  • 1 ≤ pat의 길이 ≤ 10
    • myStringpat는 문자 “A”와 “B”로만 이루어진 문자열입니다.

입출력 예시

myString pat result
“ABBAA” “AABB” 1
“ABAB” “ABAB” 0

입출력 예 설명 1

  • “ABBAA”에서 “A”와 “B”를 서로 바꾸면 “BAABB”입니다. 여기에는 부분문자열 “AABB”가 있기 때문에 1을 return 합니다.

입출력 예 설명 2

  • “ABAB”에서 “A”와 “B”를 서로 바꾸면 “BABA”입니다. 여기에는 부분문자열 “BABA”가 없기 때문에 0을 return 합니다.

코드 구현

Python

def solution(myString, pat):
    listString = list(myString)
    
    for index in range(len(listString)):
        if listString[index] == "A":
            listString[index] = "B"
        elif listString[index] == "B":
            listString[index] = "A"
    
    return 1 if "".join(listString).find(pat) != -1 else 0

Java

class Solution {
    public int solution(String myString, String pat) {
        String[] split = myString.split("");
        
        for (int i = 0; i < split.length; i++) {
            if (split[i].equals("A")) {
                split[i] = "B";
            } else if (split[i].equals("B")) {
                split[i] = "A";
            }
        }
        
        StringBuilder answer = new StringBuilder();

        for (String s : split) {
            answer.append(s);
        }
        
        return answer.toString().contains(pat) ? 1 : 0;
    }
}