문제 설명

영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return 하도록 solution 함수를 완성해주세요.

 

제한사항

  • my_string은 소문자와 공백으로 이루어져 있습니다.
  • 1 ≤ my_string의 길이 ≤ 1,000

 

입출력 예

my_string result
"bus" "bs"
"nice to meet you" "nc t mt y"

 

내 풀이

def solution(my_string):
    mo = ["a", "e", "i", "o", "u"]

    for str in my_string:
        if str in mo:
            my_string = my_string.replace(str, '')

    return my_string

 

회고

  • 바로 앞에서 배웠던 풀이를 응용했다! 배운 것을 바로 써먹은 것 같아 기쁘다. 🥰
 

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

문제 설명 문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ my_string의 길이 ≤ 100 letter은 길이

salzzing.tistory.com

  • 굳이 구구절절 for문과 if문을 다 쓸 필요 없이,  for str in mo: 라고만 써도 됐다. 바보바보
  • join 함수를 이용한 방법도 있다.

 

join

  •  '구분자'.join(리스트) 와 같이 쓴다.
  • 매개변수로 들어온 리스트에 있는 요소 하나하나를 합쳐서 하나의 문자열로 바꾸어 반환
  • 예:
>>> a = ["a", "b", "c", "d", "e"]
>>> result = ''.join(a)
>>> print(result)

abcde
  • 위의 예제에서는  return "".join([ str for str in my_string if not (str in "aeiou")]) 와 같이 깔끔하게 쓰기도 하더라.
    • 여기도 리스트 컴프리헨션을 적용할 생각을 하다니... 천잰가.
    • my_string 문자열을 싹 돈다 > 각 문자 중 "aeiou"에 속하지 않는 것만 모아서 리스트를 따로 만듦

 

 

복사했습니다!