코딩테스트 입문 - 특정 문자 제거하기 문제


📢 문제 설명

문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.


⚠️ 제한사항

  • 1 ≤ my_string의 길이 ≤ 100
  • letter은 길이가 1인 영문자입니다.
  • my_string과 letter은 알파벳 대소문자로 이루어져 있습니다.
  • 대문자와 소문자를 구분합니다.

🔶 입출력 예

my_stringletterresult
"abcdef""f""abcde"
"BCBdbe""B""Cdbe"

🔸입출력 예 설명

입출력 예 #1
"abcdef" 에서 "f"를 제거한 "abcde"를 return합니다.

입출력 예 #2
"BCBdbe" 에서 "B"를 모두 제거한 "Cdbe"를 return합니다.


💎 나의 풀이


const solution = (my_string, letter) => [...my_string].filter(x => letter !== x).join('');

바로 이전 문제에서 spread 문법과 join() 함수를 사용하지 못 했는데 이 문제에서는 잘 사용하였다.
한 줄 코드 완성!


💡 다른 사람의 풀이(replaceAll, split 함수)

첫 번째 풀이

function solution(my_string, letter) {
    return my_string.replaceAll(letter, "");
}

replaceAll 메서드는 처음 접해봤는데 이렇게도 풀 수 있구나 싶다. 해당 문자 모두 "" 이걸로 대체하겠다는 코드이다.

두 번째 풀이

function solution(my_string, letter) {
    return my_string.split(letter).join('');
}

split() 함수도 기억해야겠다.


🔅 replaceAll 메서드

2021년이 되서야 ES2021(ES12) 표준 명세에 전역 문자열 바꾸기 메서드인 replaceAll() 이 추가되었다고 한다.

최신 자바스크립트 - replaceAll() 글 참조

profile
프론트엔드 개발자입니다.

0개의 댓글