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

YH·2023년 10월 16일
0

문제

문자열 바꿔서 찾기 : 문제 링크


문제 분석

  • 문자 "A"와 "B"로 이루어진 문자열 myString과 pat가 주어진다. myString의 "A"를 "B"로, "B"를 "A"로 바꾼 문자열의 연속하는 부분 문자열 중 pat이 있으면 1을 아니면 0을 return
  • for loop를 통해 myString의 첫번째 인덱스 부터 마지막까지 검사하고, if ~ else if문을 활용하여 해당 인덱스의 문자가 "A"일 경우 "B"로, "B"일 경우 "A"로 변환하여 문자열 change에 저장
  • 이후 if ~ else문을 활용하여 string 헤더의 find() 함수를 사용하여, 문자열 change에서 pat 문자열을 찾을 경우, 즉 npos를 return 하지 않을 경우 1을, 문자열을 찾지 못할 경우 0을 return

string 헤더의 find() 함수 사용법
str.find("찾는 문자")
=> 찾는 문자를 str 문자열 내에서 찾았다면 해당 문자열의 시작 위치를, 그렇지 않을 경우 npos를 return


풀이

#include <string>

using namespace std;

int solution(string myString, string pat) {
    string change;
    
    for(int i = 0; i < myString.size(); ++i) {
        if(myString[i] == 'A') change += 'B';
        else if(myString[i] == 'B') change += 'A';
    }
    if(change.find(pat) != string::npos) return 1;
    else return 0;
}
profile
Keep Recycling Your Dreams

0개의 댓글