Lv 0. 모음 제거

https://school.programmers.co.kr/learn/courses/30/lessons/120849

 

#include <string>
#include <vector>

using namespace std;

string solution(string my_string) {
    string answer = "";
    for(auto c: my_string){
        if(c=='a'|| c=='e'||c=='i'||c=='o'||c=='u') continue;
        answer+=c;
    }
    return answer;
}

 

다른 사람의 풀이를 보았는데, 함수를 활용하는 방법이 있었다. 

해당 풀이를 첨부해보자면, 

#include <string>
#include <vector>
#include <regex>

using namespace std;

string solution(string my_string) {
    string answer = "";
    answer = regex_replace(my_string, regex("[aeiou]+"), "");
    return answer;
}

위와 같은 방법이었고, <regex> 헤더에 있는 regex_replace 함수를 활용한 풀이이다. 이때에 regex와 regex_replace에 대해서 잘 몰랐기 때문에 이에 대해서 gpt에 검색을 해본 결과에 대해서 아래 첨부해놓는다. 

일단 알고리즘 문제풀이 단계에서 regex, regex_replace에 대해서 적극적으로 활용할 일이 많이 있을것 같지는 않지만, 

이러한 함수가 있다는 것을 알아두고 혹시 다음에 이런 형식의 문제를 풀어볼 일이 있을때 한번 떠올려 보도록 하자. 

 

`regex_replace`와 `regex`는 C++의 정규 표현식 라이브러리로, 문자열에 대한 패턴 매칭과 대체 작업을 
수행하는 데 사용됩니다.

1. **regex (정규 표현식)**: `regex`는 C++의 `<regex>` 헤더에서 제공되는 클래스입니다. 이 클래스를 
사용하여 정규 표현식 패턴을 정의하고, 이 패턴을 검색하거나 다른 문자열과 일치시킬 수 있습니다. 예를 
들어 `[aeiou]+`와 같은 정규 표현식은 모음 문자 그룹 중 하나 이상의 문자에 일치합니다.

2. **regex_replace (정규 표현식 대체)**: `regex_replace` 함수는 `<regex>` 헤더에서 제공됩니다. 
이 함수를 사용하여 문자열에서 특정 패턴을 찾아 다른 문자열로 대체할 수 있습니다. 예를 
들어, `regex_replace(my_string, regex("[aeiou]+"), "")`는 `my_string`에서 모음 
문자열을 찾아 모두 빈 문자열로 대체합니다. 결과적으로 모음 문자열이 제거된 새로운 문자열을 반환합니다.

간단한 예제:

```cpp
#include <iostream>
#include <regex>
#include <string>

int main() {
    std::string my_string = "hello world";
    std::string result = std::regex_replace(my_string, std::regex("[aeiou]+"), "");
    std::cout << result << std::endl; // "hll wrld"
    return 0;
}
```

이 코드에서는 "hello world" 문자열에서 모음 문자를 제거하여 "hll wrld"를 출력합니다.
  Comments,     Trackbacks