본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 38 - 모음 제거)

728x90

 

# 문제 

영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.



# 답안


// 방법 1) 정규 표현식 사용
function solution(my_string) {
    return my_string.replace(/[aeiou]/g, '');
}


// 방법2) for 반복문 사용
function solution(my_string) {
    const vowels = ['a', 'e', 'i', 'o', 'u'];  // 모음 선언
    let result = '';  // 빈 문자열 선언

    for (let i = 0; i < my_string.length; i++) {
        if (!vowels.includes(my_string[i])) {  // 
            result += my_string[i];
        }
    }

    return result;
}

 

< 방법1 설명 >

/[aeiou]/g

- [aeiou]는 소문자 모음을 나타냄 
- g 플래그는 전역 검색을 나타내며 모든 모음을 찾아내도록 함


replace()

- 정규 표현식에 해당하는 부분을 다른 문자열로 대체함.
- 여기서는 모음을 빈 문자열로 대체하여 제거함
// ex. solution("hello")를 호출하면 "hll"이 반환됨

 

< 방법2 설명 >

vowels.includes(my_string[i])

현재 문자가 vowels 배열에 포함되어 있는지 확인

!vowels.includes(my_string[i])가 true이다. = 현재 문자가 모음이 아니다.

예컨대, my_string[0]이 "h"면,  h가 vowels 안에 includes 된게 아니다(!)라는 뜻. 즉, h가 모음이 아니다.

이 경우에는, "h"를 result 문자열에 추가

 

728x90