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

2024. 9. 8. 08:15카테고리 없음

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

 

입출력 예 #1

"abcdef" 에서 "f"를 제거한 "abcde"를 return합니다.

입출력 예 #2

"BCBdbe" 에서 "B"를 모두 제거한 "Cdbe"를 return합니다.

 

내 풀이

def solution(my_string, letter):
    return my_string.replace(letter, "")

 

 

파이썬 특정 문자열 지우기

 

1. replace() 메서드

my_string = "apple"
letter = "p"
result = my_string.replace(letter, "")  # "ale"

 

2. 리스트 내포(List Comprehension) + join()

리스트 내포를 이용해 특정 문자를 제외한 나머지 문자들만 선택한 후, 다시 문자열로 합치는 방법

my_string = "apple"
letter = "p"
result = ''.join([char for char in my_string if char != letter])  # "ale"

 

3. filter() 함수 + join()

filter() 함수는 특정 조건에 맞는 요소들만 추출하는 함수.

이와 join()을 함께 사용하면 문자열에서 특정 문자를 제거할 수 있다.

my_string = "apple"
letter = "p"
result = ''.join(filter(lambda char: char != letter, my_string))  # "ale"

 

4. 정규 표현식(re 모듈) 사용

정규 표현식은 패턴 매칭을 통해 문자나 문자열을 검색하거나 대체할 때 사용된다.

이를 이용해 특정 문자를 제거할 수 있다.

import re
my_string = "apple"
letter = "p"
result = re.sub(letter, '', my_string)  # "ale"

 

5. 문자열 슬라이싱

특정 위치의 문자만 제거할 때는 슬라이싱을 사용할 수 있습니다.

하지만 이 방법은 특정 문자나 패턴을 제거하기보다는 인덱스를 사용한 위치 기반 제거에 더 적합합니다.

my_string = "apple"
# 첫 번째 문자 'a'를 제거 (index 0)
result = my_string[1:]  # "pple"

 

6. translate() 메서드

translate() 메서드는 매핑 테이블을 이용해 특정 문자나 문자열을 다른 문자로 변환하거나 제거할 수 있습니다.

str.maketrans() 함수를 함께 사용하여 특정 문자를 빈 문자열로 매핑하면 제거할 수 있습니다.

my_string = "apple"
letter = "p"
result = my_string.translate(str.maketrans('', '', letter))  # "ale"

 

 

7. 루프와 조건문

간단한 for 루프와 조건문을 이용해서 문자열에서 특정 문자를 제거할 수도 있습니다.

my_string = "apple"
letter = "p"
result = ""
for char in my_string:
    if char != letter:
        result += char  # "ale"