<문제>
문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
<유형>
문자열, 반복, 입출력
<답>
이 문제는 문자열 관련 함수를 사용하면 간단해진다.
문제는, 해당 문자를 다 삭제해야하는데- 이 함수는 erase라는 함수를 사용하면 된다.
string::erase는 문자열에서 특정한 문자(열)을 제거해준다.
사용법은 총 3가지
string& erase(size_t pos = 0; size_t len = len); //0부터 len 길이 만큼의 문자열을 제거
iterator erase(const_iterator p); //p에 해당하는 문자 제거
iterator erase(const_iterator first, const_iterator last); //(first, last] 길이의 문자열 제거
보면 알겠지만, 특정 길이만큼의 문자열만 제거해준다.
우리는 특정 문자를 제거해야하므로, 여기에 조건을 추가해야한다.
그래서 필요한것이
algorithm::remove 함수다. 특정 문자가 있는 모든 인덱스를 반환해준다.
사용법은 아래와 같다.
remove(문자열.begin(), 문자열.end(), char)
인덱스(위치)를 반환하므로, remove함수를 erase 함수에 넣어준다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(string my_string, string letter) {
string answer = "";
for(char c: letter){
my_string.erase(remove(my_string.begin(), my_string.end(), c), my_string.end());
}
answer = my_string;
return answer;
}
'[C++] 프로그래머스' 카테고리의 다른 글
[프로그래머스/c++] 직각삼각형 출력하기 (0) | 2022.11.15 |
---|---|
[프로그래머스/c++] 중앙값 구하기 (0) | 2022.11.08 |
[프로그래머스/c++] 분수의 덧셈 (0) | 2022.11.03 |
[프로그래머스/c++] 제곱수 판별하기 (0) | 2022.10.21 |
[프로그래머스/c++] 배열 원소의 크기 (1) | 2022.10.19 |