SPACE RUMI

Hi, I am rumi. Let's Splattack!

[IT] 프로덕트 개발/Coding Test - 코딩테스트

[LV1] 옹알이2 / while()

백루미 2022. 11. 15. 23:35
반응형

프로그래머스 LV1 > 연습문제 > 옹알이2

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

[문제해결]
1. 말할수있는것의 반복이 존재하면 제외시킨다.
2. 말할수있는것을 다른값으로 치환하면서 반복수행한다. (검증하기 편하게 빈값(' ')으로 치환했다)
3. 루프를 빠져나온 최종값이 빈값이면 카운트.
** 중간값부터 제거되어 말할수있는 단어가 만들어지는 상황을 주의한다.

 

while(여기에 들어가는값을 자꾸 false로 넣어서) 무한루프에 빠졌는데, true이면 수행이다.
while에서 참조하는값은 계속 바뀌는 값이여야한다. 단순 인덱스를 참조하는것이 아니라면, while문 내에서 원본(참조값)을 수정하는 작업이 필요하다.

다시 짚고넘어가는 while문..

while(조건이 참이면){
	//실행
}

 

코드

function solution(babbling) {
    const speak = ["aya", "ye", "woo", "ma"]
    let count = 0;
    for(let i = 0; i < babbling.length; i++){ // babbling 하나씩 실행
        let str = babbling[i]
          speak.forEach(el =>{ // 말할수있는것을 찾는과정
            let double = el+el;
            if(babbling[i].indexOf(double) == -1){
                while(str.indexOf(el) !== -1){ // 말할수있는게 없을때까지 실행
                   str = str.replace(el, ' ');
                }
            }
        })
        console.log(str.trim())
        if(str.trim() == '') count++
    }
    return count
}
반응형