특정 문자 제거하기
문제 설명
문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤
my_string의 길이 ≤ 100
letter은 길이가 1인 영문자입니다.
my_string과 letter은 알파벳 대소문자로 이루어져 있습니다.
- 대문자와 소문자를 구분합니다.
입출력 예
| my_string |
letter |
result |
| "abcdef" |
"f" |
"abcde" |
| "BCBdbe" |
"B" |
"Cdbe" |
입출력 예 설명
입출력 예 #1
- "abcdef" 에서 "f"를 제거한 "abcde"를 return합니다.
입출력 예 #2
- "BCBdbe" 에서 "B"를 모두 제거한 "Cdbe"를 return합니다.
나의 풀이
function solution(my_string, letter) {
let answer;
const letters = new RegExp(letter, "g");
answer = my_string.replace(letters, '');
return answer;
}
풀이 설명
접근 방법
- 나는
letter에 저장된 문자열의 문자를 처음부터 순서대로 my_string의 문자열과 비교하는 방법을 생각했다.
- 이를 위해서는
letter에 저장된 문자열을 전역 탐색할 수 있는 방법이 필요했고, 그 이후 my_string의 문자열과 차례대로 비교하여 일치하는 항목을 제거하는 방법이 필요했다.
필요했던 개념
letter에 저장된 문자열을 전역 탐색하는 방법
- 이를 위해 정규 표현식을 사용했다.
- 정규 표현식의 플래그
g를 활용하면 해당 문자열 전체를 전역 탐색한다.
- 정규 표현식을 만드는 방법에는 리터럴 방식과
RegExp 객체의 생성자를 호출하는 방식이 있다.
- 본 문제에서는 문자열이 변수에 저장되어 있기 때문에
RegExp 객체의 생성자를 호출하는 방식을 이용했다.
my_string에서 letter와 일치하는 문자를 제거하는 방법
- 이를 위해
String에서 사용할 수 있는 메서드인 replace()를 이용했다.
replace() 메서드를 이용하면 일치 항목을 새 문자열로 반환하는데, 이때 이 새 문자열을 ''과 같이 공백으로 설정하면 일치 항목을 제거하는 것과 같은 역할을 수행할 수 있다.
풀이 과정
- 매개변수로 들어온
letter에 저장된 문자열을 정규 표현식 객체로 상수 letters에 저장하고, g 플래그를 사용하여 전역탐색 될 수 있도록 한다.
- 매개변수로 들어온
my_string에 저장된 문자열에 replace() 메서드를 사용하여 letters에 저장된 문자열을 전역탐색하며 my_string과 일치하는 문자열을 ''으로 치환하여 제거한다.