본문 바로가기
코테정복💫/파이썬 PYTHON

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

by 옹쑥이 2023. 9. 12.

문제 설명

문자열 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):
    my_string = list(map(str, my_string))
    while(letter in my_string):
        my_string.remove(letter)
    answer = ''.join(my_string)
    return answer

 1. my_string이 문자열이므로 list로 변경한다.
    (이때, my_string은 문자이므로 str)

my_string = list(map(str, my_string))

2. 결과값이 list가 아닌 문자열이므로 문자열로 변경하는 코드를 입력해 둔다.

answer = ''.join(my_string)

3. remove()는 list에 중복 값이 있을 경우, 첫 번째 값만 제거하므로 반복문을 이용한다.
    while을 사용하여 my_string에 letter가 있을 경우 반복문을 계속 실행하도록 한다.

while(letter in my_string):
     my_string.remove(letter)

 

 

참고🐣

remove()는 지우려는 요소가 없을 시, KeyError가 발생한다.

지우려는 요소가 없을 때에 정상 종료를 원할 경우, discard()를 사용하는 것이 좋다. 

 

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120826