2023. 9. 22. 10:38, 알고리즘/프로그래머스
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"를 출력합니다.'알고리즘 > 프로그래머스' 카테고리의 다른 글
| Lv 0. 소인수분해 (0) | 2023.09.22 |
|---|---|
| Lv 0. 문자열 정렬하기 (1) - 각각의 char가 숫자형태의 캐릭터인지 아닌지 알고싶다면 isdigit() 함수를 사용하자. (0) | 2023.09.22 |
| Lv 0. 팩토리얼 (0) | 2023.09.21 |
| Lv 0. 최댓값 만들기(1) (0) | 2023.09.21 |
| Lv 0. 합성수 찾기 (0) | 2023.09.21 |
Comments, Trackbacks
