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

vancouver·2023년 3월 30일
0

특정 문자 제거하기

문제설명

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

제한사항

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

입출력의 예

입출력 예

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(a => a !== letter).join("")

참고


...my_string

...은 전개 연산자(spread operator)로서, 배열이나 문자열과 같은 이터러블(iterable) 객체를 확장하여 각 요소를 개별적인 값으로 분리하는 역할을 합니다. my_string이 문자열인 경우, ...my_string은 각 문자를 개별적인 값으로 분리합니다.

예를 들어

my_string이 "hello"인 경우, ...my_string은 "h", "e", "l", "l", "o"로 분리됩니다.

이를 배열에서 사용한다면, 배열을 확장하여 각 요소를 개별적인 값으로 분리할 수 있습니다. 예를 들어, my_array가 [1, 2, 3]인 경우, [...my_array]는 1, 2, 3으로 분리됩니다.

(a => a !== letter)

(a => a !== letter)는 화살표 함수(arrow function)로서, 인자로 받은 a가 letter와 같지 않은 경우에 true를 반환하는 함수입니다.

예를 들어, letter가 'a'이고, a가 'b'인 경우에는 a !== letter가 참이므로 (a => a !== letter) 함수는 true를 반환합니다. 하지만, letter가 'a'이고, a가 'a'인 경우에는 a !== letter가 거짓이므로 (a => a !== letter) 함수는 false를 반환합니다.

이 함수는 주로 배열의 filter 메소드와 같은 고차 함수(higher-order function)와 함께 사용되어, 특정 조건을 만족하는 요소들만 추려내는 용도로 활용됩니다. 예를 들어, 다음과 같은 코드는 문자열 배열 arr에서 'a'를 제외한 문자열들만 모아 새로운 배열을 만듭니다.

const arr = ['apple', 'banana', 'cherry', 'durian'];
const letter = 'a';
const result = arr.filter(a => a !== letter);
console.log(result); // ["banana", "cherry", "durian"]

0개의 댓글