min

프로그래머스 옹알이(2) 자바스크립트 본문

알고리즘

프로그래머스 옹알이(2) 자바스크립트

minprogramming 2023. 8. 23. 07:49

<문제>

https://school.programmers.co.kr/learn/courses/30/lessons/133499#

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

<나의 풀이>

//babbling의 길이 만큼 반복문을 돌면서 다음 과정을 수행한다.
//[aya , ye , woo , ma] 만큼 돌면서 다음 과정을 수행한다.
//만약에 babbling의 원소중에 위 리스트의 원소가 포함되어 있으면 해당 원소를 지운다.
//반복문을 다 돌고 나서 babbing의 원소가 다 비었다면 answer를 추가한다.
//answer를 리턴한다.

function solution(babbling) {
    var answer = 0;
    
    for(let i = 0; i < babbling.length; i++) {
        
        babbling[i] = babbling[i].replace(/(ayaaya|yeye|mama|woowoo)/g , " ")
        babbling[i] = babbling[i].replace(/(aya|ye|ma|woo)/g , "")
        if(babbling[i] === "") answer ++;
    }

    
    return answer;
}

 

<다른 사람의 풀이>

 

function solution(babbling) {
  const regexp1 = /(aya|ye|woo|ma)\1+/;
  const regexp2 = /^(aya|ye|woo|ma)+$/;

  return babbling.reduce((ans, word) => (
    !regexp1.test(word) && regexp2.test(word) ? ++ans : ans
  ), 0);
}

 

<참고 자료>

정규표현식

https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_expressions

 

정규 표현식 - JavaScript | MDN

정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴입니다. JavaScript에서는 정규 표현식도 객체로서, RegExp의 exec() (en-US)와 test() 메서드를 사용할 수 있습니다. String의 match()

developer.mozilla.org