모음 제거

2024. 8. 9. 18:00코딩테스트 입문

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명
영어에선 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"

입출력 예 설명
입출력 예 #1

  • "bus"에서 모음 u를 제거한 "bs"를 return합니다.

입출력 예 #1

  • "nice to meet you"에서 모음 i, o, e, u를 모두 제거한 "nc t mt y"를 return합니다.

주어진 문자열에서 모음 a, e, i, o, u를 제거한 문자열을 반환하는 문제입니다.

제거해야할 문자들이 확실하게 정해져 있죠. 이러면 리스트를 이용해서 not in으로 문제를 풀 수 있을 것 같습니다.

파이썬으로 문제를 풀어보겠습니다.

def solution(my_string):
    # 제거해야할 모음들
    vowels = ['a', 'e', 'i', 'o', 'u']
    # my_string에서 모음을 제거한 단어 리스트를 join을 이용해 문자열로 변환
    return ''.join(word for word in my_string if word not in vowels)

미리 모음들을 정의해둔 다음, 리스트 컴프리헨션을 사용해서 word로 리스트를 만들었습니다.

만든 리스트는 join을 사용하여 공백없이 합쳐 문자열로 변환했습니다.

 

반복문으로 하나씩 제거해도 되기는 하지만 리스트 컴프리헨션 쪽이 저한테는 더 맞네요.

각자 좋아하는 방식으로 푸시면 됩니다.

'코딩테스트 입문' 카테고리의 다른 글

숨어있는 숫자의 덧셈 (1)  (0) 2024.08.11
문자열 정렬하기 (1)  (0) 2024.08.10
팩토리얼  (0) 2024.08.08
최댓값 만들기(1)  (0) 2024.08.07
합성수 찾기  (0) 2024.08.06