[C++] 프로그래머스 문자열 바꿔서 찾기

문제설명

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


제한사항

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


입출력 예

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


풀이

먼저 myString의 “A”와 “B” 문자들을 바꾼 뒤 find 함수를 이용하여 pat 문자열이 존재하는지 판단하는 로직을 구현하였습니다.

#include <string>
#include <vector>

using namespace std;

int solution(string myString, string pat) {
    int answer = 0;
    string converMs = "";

    for(int i = 0; i < myString.size(); i++)
    {
        if(myString[i] == 'A')
            converMs.push_back('B');
        else
            converMs.push_back('A');
    }
    
    answer = converMs.find(pat) != string::npos ? 1 : 0;

    return answer;
}


결과

코드 실행결과

Categories:

Updated:

Leave a comment