프로그래머스 풀이/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 => 정규표현식을 쓴 분도 계시던데.. 진짜 어떻게 이런 생각을 하시는지.. 🥺