코딩테스트

프로그레머스 레벨 0 모음 제거

choyou831 2024. 4. 11. 10:01

 

우선 문제를 살펴보면 문자열에서 모음만 제거해주면되는 간단한 문제이다

그래서 replace함수를 쓰면 가볍게 풀수있을거라 생각했다.

 

def solution(my_string):
    answer = ''
    vowels = ['a', 'e', 'i', 'o', 'u']
    for i in range(len(my_string)):
        if i == vowels:
            answer = my_string.replace(i,'')
    return answer

vowels라는 list에 모음을 두고, for문을 통해서 my_string에 들어있는 모음을 제거하려고했다.

하지만 my_string문자열이 모두 공백으로 나타났다.

위의 코드를 보면 (if i == vowels) 여기부분을 보면 정수형i를 문자열 vowels을 비교하는게

말이 안된다. type이 다른 두 부분을 비교하는 부분에서 문제가 생긴다.

또 answer = my_string.replace(i,'')여기 부분을 보면
my_string의 모음을 제거하는게 아니라 인덱스를 제거하는거라 결과값이 모두 공백으로 나오는거라 생각했다.

그래서 코드를 수정해보면:

def solution(my_string):
    answer = ''
    vowels = ['a', 'e', 'i', 'o', 'u']
    answer = my_string
    for i in vowels:
        answer = answer.replace(i,'')
    return answer

for문이 돌아가면서 i라는 변수에 a,e,i,o,u를 담아가면서

answer라는 변수에 있는 모음을 모두 제거하게 된다.


느낀점:사실 같은type끼리만 비교하는것은 아주 기본적인것이다.

그래서 코드를 조금씩 생각하면서 짜게되면 이런실수를 하지않을것같다.

 

 

유의점:type를 비교할때는 같은type끼리만 비교가 가능하다.