문제설명
문자 "A"와 "B"로 이루어진 문자열 myString과 pat가 주어집니다. myString의 "A"를 "B"로, "B"를 "A"로 바꾼 문자열의 연속하는 부분 문자열 중 pat이 있으면 1을 아니면 0을 return 하는 solution 함수를 완성하세요.
제한사항
- 1 ≤ myString의 길이 ≤ 100
- 1 ≤ pat의 길이 ≤ 10
- myString과 pat는 문자 "A"와 "B"로만 이루어진 문자열입니다.
입출력 예
입출력 예 설명
입출력 예 #1
- "ABBAA"에서 "A"와 "B"를 서로 바꾸면 "BAABB"입니다. 여기에는 부분문자열 "AABB"가 있기 때문에 1을 return 합니다.
입출력 예 #2
- "ABAB"에서 "A"와 "B"를 서로 바꾸면 "BABA"입니다. 여기에는 부분문자열 "BABA"가 없기 때문에 0을 return 합니다.
작성코드
#include <string>
#include <vector>
using namespace std;
int solution(string myString, string pat) {
int answer = 0;
string newstr="";
int patSize = pat.size();
// myString에서 A를 찾고 B를 찾아서 replace해주어야함
for (char& ch : myString)
{
if (ch == 'A')
newstr += 'B';
else if (ch == 'B')
newstr += 'A';
else
newstr += ch;
}
int strSize = newstr.size();
for (int i=0; i<=strSize - patSize; ++i)
{
if (newstr.substr(i, patSize) == pat)
answer = 1;
}
return answer;
}
문제 URL
https://school.programmers.co.kr/learn/courses/30/lessons/181864
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'C++ > 코딩 기초 트레이닝' 카테고리의 다른 글
[C++/프로그래머스] 세 개의 구분자 (0) | 2023.12.14 |
---|---|
[C++/프로그래머스] rny_string (0) | 2023.12.13 |
[C++/프로그래머스] 간단한 식 계산하기 (0) | 2023.12.13 |
[C++/프로그래머스] 문자열 잘라서 정렬하기 (0) | 2023.12.13 |
[C++/프로그래머스] x 사이의 개수 (0) | 2023.12.13 |