코딩테스트
프로그레머스 레벨 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끼리만 비교가 가능하다.