본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 23 - 특정 문자 제거하기)

728x90

 

# 문제

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



# 답안 

// 1. 입력: my_string -> 문자열 "abc" 같은거, letter -> 문자 "a" 같은거 
// 2. 출력: my_string에서 letter을 제거한 문자열 반환


// 방법 1) split, join 사용
function solution(my_string, letter) {
    const answer = my_string.split(letter).join('');
    return answer;
}


// 방법 2) replaceAll 사용
function solution(my_string, letter) {
    return my_string.replaceAll(letter, "");
}



# 인사이트 
// 문자열 나누기는 split 
// 문자열 배열 요소 합치기는 join
// 문자열 치환은 replaceAll

 

< 1번째 방법 설명>

my_string = "hello world"
letter  = "o"

1. split 메서드를 사용하여 문자열을 특정 문자를 기준으로 나눈다. 
- 여기서는 문자 "o"를 기준으로 나눈다. 
- ["hell", " w", "rld"]

2. join 메서드를 사용하여 배열의 각 요소를 합쳐서 하나의 문자열로 만든다. 
- 이 때, 구분자 없이 합치기 위해 빈 문자열을 사용한다. 
- 따라서 배열의 각 요소가 연결되어 "hell wrld"라는 문자열이 만들어진다. 


* join 메서드에서 구분자(separator) 이해하기 

- join 메서드는 배열의 각 요소를 하나의 문자열로 결합할 때 요소들 사이에 구분자를 넣는다.
- 이때 구분자를 인자로 지정하지 않으면 기본적으로 쉼표(,)가 사용된다. 
   ex. ["hello", "world"].join()  //  'hello,world'

- 아무런 구분자를 사용하지 않으려면, 빈 문자열 ''을 사용하면 된다. 
- 이는 아무런 구분자를 사용하지 않겠다는 것을 의미하며, 배열의 각 요소가 연속해서 이어져서 결합된다.
   ex. ["hello", "world"].join('')   // 'helloworld'

 

< 2번째 방법 설명>

my_string = "hello world"
letter  = "o"

1. replaceAll 메서드는 문자열에서 특정 문자열을 다른 문자열로 모두 치환하는 메서드이다.
- replaceAll은 정규 표현식을 사용하여 모든 문자열을 치환할 수 있다.
- 정규표현식: 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리할 수 있도록 하는 수단

2. replaceAll의 예시
   let str2 = 'Hello, Jacob Jacob Jacob';
   str2 = str2.replaceAll('Jacob', 'cob');  // Jacob을 cob으로 전부 치환
   console.log(str2);   // Hello, cob cob cob

3. 여기서는 문자 "o"를 빈 문자열로 치환한다. 
my_string.replaceAll(letter, ""); 
- "hello world"에서 "o"를 모두 빈 문자열로 치환하면 "hell wrld"가 된다. 
- 최종적으로 "hell wrld"가 반환된다.

 

728x90