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

김명성·2023년 6월 12일
function solution(babbling) {
  var answer = 0;
  let limit = ['aya','ye','woo','ma']
  
  babbling.forEach((babble) => {
    let target = babble;
    let temp = '';
    for(let i = 0; i <babble.length; i++){ // validate
      temp += babble[i]
      if(limit.includes(temp)){
        if(temp === babble.slice(i + 1, i + temp.length + 1)){
          return false
        }else {
          temp = ''
        }
      }
    }
      for(let i = 0; i < limit.length; i++) { //replaceAll
          if(target.includes(limit[i])){ 
            target = target.replaceAll(limit[i],'*')
          }
      }
      target = target.replace(/\*/gi,'');
      if(!target){
          answer++    
      }
  })
  return answer;
}

풀이

기존 옹알이(1)에 한가지 제한사항이 붙은 기출변형문제입니다.

1번째 for문이 제한사항을 해결하는 구문입니다.

먼저 temp 변수에 글자를 하나씩 더합니다.
temp 변수에 담은 문자열이 limit의 요소에 존재하는지 확인합니다.
예를 들어 ayawoowooaya가 입력되었을 때에는 ayawoo를 검사하고, 두 문자열이 서로 같지 않기 때문에 temp를 비운뒤 index3w부터 temp를 쌓아올리다가 woo가 완성되는 순간 2번째 woo와 비교하여 일치를 확인한 뒤에 for loop을 탈출합니다.

첫번째 for문 덕분에 2번째 for문에서 replaceAll 메서드를 사용할 수 있습니다.


0개의 댓글