코딩테스트

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

john-lennon 2026. 4. 29. 15:05

문제 설명

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

 


 

나의 코드

function solution(my_string, letter) {
    let result = "";
    
    for (let i = 0; i < my_string.length; i++) {
        if (my_string[i] != letter) {
            result += my_string[i];
        } 
    }
    
    return result;
}

 

방식

문자열은 직접 빼기가 어려우므로, 반복문으로 한 글자씩 비교하면서 제거할 문자를 제외한 나머지만 새 문자열에 누적하는 방식으로 풂.

 


 

case 1 다른 사람의 코드 

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

 

나와의 차이점

처음부터 letter를 기준으로 문자열을 분리한 뒤, 다시 붙이면서 letter를 자연스럽게 제거

 

 

case 2 다른 사람의 코드

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

 

나와의 차이점

replaceAll() 메서드를 활용해 특정 문자를 한 번에 모두 치환하여 훨씬 간결하게 해결했다.

 

 

형태

문자열.replaceAll(바꿀값, 새로운값)

 

의미: 문자열 안의 바꿀값을 모두 찾아 새로운값으로 전부 변경

 


 

느낀점

replaceAll처럼 목적에 맞는 내장 메서드를 활용하면 코드 길이를 줄이고 가독성을 높일 수 있다는 점을 느꼈다.