프로그래머스 풀이/level0

[Programmers] level 0) 문제 '모음제거' 풀이

진기명기 2023. 2. 27. 23:50
🫠 Programmers (level 0) 
👉🏻 문제 28번 (모음제거) : aeiou 모음 제거하기

 

 

 


function solution(my_string){
  
  // 배열 만들기
  let result = [...my_string]
  let arr = ['a', 'e', 'i', 'o', 'u']

  // filter() > for of > splice()를 통해 모음 제거
  result.filter((item, index) => {
    for(let i of arr){
      if(item === i){
        result.splice(index, 1)
      } 
    }
  })
  return result.join('')
  
  }
  
  
let str1 = "bus"	
let str2 = "nice to meet you"	

console.log(solution(str1))
console.log(solution(str2))

 

🫠 최대한 내가 아는 함수를 다 사용해서 익숙해지자는 생각으로 풀었는데, 자꾸 코드만 길어지고 심지어 정답도 나오지 않아 애를 먹었다. 위에처럼 코딩을 하면 str1은 u가 지워진 bs로 나오지만, str2에서 오류가 난다.

👉🏻 str2 output : 'nc t met y'
대체 왜! met로 나오는 것인가.. 답을 찾아보니, 중복되는 배열이기 때문에 meet에서 e를 이미 지웠으므로 뒤에 나오는 e를 삭제하지 않고 그냥 넘어간다는 그런 설명.. 을 보았다.. (눈물)

 

 

 


✅ 확인할 점

💡 제거할 모음을 배열로 만들지 않고, includes로 사용해서 제거할 수도 있다. *** includes는 문자열과 배열 메서드 ❗️

💡 replace()를 사용해서 /[aeiou]/g => 정규표현식을 쓴 분도 계시던데.. 진짜 어떻게 이런 생각을 하시는지.. 🥺