[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;
}


결과

코드 실행결과

Categories:

Updated:

Leave a comment