개발 기록 남기기✍️

[프로그래머스] 특정 문자 제거하기 본문

코딩 테스트 연습

[프로그래머스] 특정 문자 제거하기

너해동물원 2022. 12. 22. 09:43

🗒️ 문제 설명

문자열 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"

 


❇️ 나의 풀이

  • 기본적으로 자바스크립트는 대소문자를 구별하기 때문에 내가 신경쓸 영역은 아니다!
  • String을 전개한 뒤, filter 함수를 통해서 해당 letter가 없는 배열을 만든다.
  • 배열을 다시 join() 을 통해서 string으로 변환한다.
    • join()에 파라미터를 주지 않으면 기본값으로 콤마(,)가 들어간다.
    • 이때 배열의 원소들을 하나의 문자열로 만들어야 하기 때문에 join의 파라미터에 ('')을 줘야 한다.
    • join('')를 사용하면 각 배열의 각 값들을 구분자 없이 연결한다.
function solution(my_string, letter) {
  var arr = [...my_string].filter(item => item != letter)
  return arr.join('');
}

 

✍️ 리뷰

✔️ string을 배열로 변환할 필요없이 string.replaceAll(letter, '') 을 하면 바로 원하는 값이 나온다.

✔️ 값의 타입을 변환하지 않고서 문제를 해결할 수 있는 방법이 있는지도 생각해봐야겠다.

✔️ 돌아다니다가 나와 비슷하면서도 아주 신박한 풀이를 봤다. 바로 아래로 넘어가겠다!

 

💟 본받고 싶은 코드

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

✔️ split() 함수를 사용하면 파라미터를 기준으로 문자열이 쪼개지고 배열을 반환한다.

✔️ 이 배열을 join('')을 통해 구분자 없이 하나의 문자열로 이어준다.