yoonix

[프로그래머스 코딩테스트 입문 Lv.0] 옹알이(1) javaScript 풀이 본문

코딩테스트

[프로그래머스 코딩테스트 입문 Lv.0] 옹알이(1) javaScript 풀이

yoonix 2023. 4. 23. 16:40
프로그래머스 > 코딩테스트 입문 > 옹알이(1)

 

제한사항
🔹 1<= babbling 의 길이 <= 100
🔹 1<= babbling [i]의 길이 <= 15
🔹 babbling 의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한번씩만 등장 합니다.
🔹문자열은 알파벳 소문자로만 이루어져 있습니다.

 

문제 풀기 전 생각
🔹정규식으로 풀 수도 있지 않을까? -> 근데 정규식으로 어케 풀어야 할지 자세한 방안은 안떠오름..
🔹for문으로 babbling 길이만큼 반복하는 게 첫번째겠다.
🔹배열에 네가지 단어를 넣고 하나씩 지워서 남는 단어가 없을때 카운트를 하나씩 해야겠다.

 

function solution(babbling) {
        var str = ["aya", "ye", "woo", "ma"]; // 발음 할 수 있는 단어들
        var chk; //옹알이 한 단어
        var answer = 0; // 말할 수 있는 단어의 카운트 수 
        for(var i=0; i<babbling.length; i++) { //옹알이한 횟수 만큼 for문을 돈다.
             chk = babbling[i]; //이번에 말한 옹알이 단어
             for(var l=0; l<str.length; l++) { //발음 할 수 있는 단어만큼 for문을 돈다. 
                chk = chk.replace(str[l], "1"); //옹알이 단어에 발음할 수 있는 단어가 있다면 1로 바꾼다.
             }
             chk = chk.replaceAll("1", ""); //1을 공백으로 바꾼다.
             if (chk == "") { // 값이 없다면 즉, 옹알이 한 단어가 발음 할수 있는 단어로만 이루어져 있다면
                 answer = answer + 1; //말할 수 있는 단어의 카운트 수에 1을 더한다. 
             }
        }
        return answer;
}