[C++] 프로그래머스 원하는 문자열 찾기
문제설명
알파벳으로 이루어진 문자열 myString과 pat이 주어집니다.
myString의 연속된 부분 문자열 중 pat이 존재하면 1을
그렇지 않으면 0을 return 하는 solution 함수를 완성해 주세요.
단, 알파벳 대문자와 소문자는 구분하지 않습니다.
제한사항
• 1 ≤ myString의 길이 ≤ 100,000
• 1 ≤ pat의 길이 ≤ 300
• myString과 pat은 모두 알파벳으로 이루어진 문자열입니다.
입출력 예
myString | pat | return |
---|---|---|
“AbCdEfG” | “aBc” | 1 |
“aaAA” | “aaaaa” | 0 |
풀이
myString 문자열에 pat문자열이 존재하는지 판단하는 구현 문제입니다. 대소문자를 구분하지 않기 때문에 toupper를 이용하여 대문자로 변환한 뒤 문자열이 존재하는지 판단하는 로직을 구현했습니다.
#include <string>
#include <vector>
using namespace std;
int solution(string myString, string pat) {
int answer = 0;
string ms = myString;
string pa = pat;
for(int i = 0; i < ms.length(); i++)
{
ms[i] = toupper(ms[i]);
}
for(int i = 0; i < pa.length(); i++)
{
pa[i] = toupper(pa[i]);
}
answer = ms.find(pa) != string::npos ? 1 : 0;
return answer;
}
결과
Leave a comment