[프로그래머스][파이썬] 모음 제거 - 문자열 (Level 0)

뻥튀기아이스크림·2025년 3월 17일
1
post-thumbnail

◽ 문제 출처

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

◽ 문제

◽ 입력 & 출력

◽ 내 풀이

def solution(my_string):
    answer = ''
    vowel = ['a', 'e', 'i', 'o', 'u']
    
    for letter in my_string:
        if letter not in vowel:
            answer += letter
            
    return answer
  • 모음들을 vowel 변수에 저장해두고, not in 조건문을 통해 검사하고 answer 에 추가했다.

◽ 다른 사람 풀이

def solution(my_string):
    vowels = ['a','e','i','o','u']
    
    for vowel in vowels:
        my_string = my_string.replace(vowel, '')
        
    return my_string
  • replace() 함수를 통하여 vowel 을 빈 문자열로 교체하는 풀이다.

◽ 더 나아가기

def solution(my_string):
    vowels = {'a', 'e', 'i', 'o', 'u'}  # set 사용 (O(1) 비교)
    return ''.join(letter for letter in my_string if letter not in vowels)
  • 위 방법처럼 set 를 사용하여 조회 성능을 높이고, join() 을 사용하여 문자열을 생성하면 비용이 제일 적은 코드가 될 것 같다.
  • 리스트 인덱스 조회는 O(1) 이지만, in 을 통한 검색은 O(n) 이다.
  • 세트 해시 테이블을 사용하여 요소를 저장하기 때문에, in 조회 연산은 O(1) 이다.



피드백은 언제나 환영입니다 :)

profile
성장하고 싶은 개발자

0개의 댓글