프로그래머스 옹알이(1) 문제 링크
나의 풀이
function solution(babbling) {
const canBabbling = [ "aya", "ye", "woo", "ma"];
let answer = 0;
for(let babble of babbling) {
for(const canBabble of canBabbling) {
if(babble.trim().length < 2 ) break;
babble = babble.replace(canBabble, ' ');
}
if(babble.trim().length === 0) answer++;
}
return answer;
}
설명 ①
- 처음에는 대체 문자열을 공백을 없애는 것으로(
''
) 지정했다가 테스트를 통과하지 못해 애를 먹었다.
- 공백없다면 "wyeoo" 문자열의 경우, 조카가 발음할 수 없는 단어임에도 불구하고
for ...of
문을 돌면서 "wyeoo" ⇒ "woo" ⇒ ""
로 바뀌면서 발음 가능한 단어가 된다.
- 공백 또는 구분되는 문자를 넣어 위와 같은 케이스를 처리하고, 이후 불필요해진 공백, 구분되는 문자를 없앤 후 발음할 수 있는 단어의 개수를 카운팅 한다.
신경 쓴 부분
for ...of
를 사용하여 for
문을 사용하는 것보다 가독성이 좋아지도록 하였다.
- 개인적으로 i, j 등을 사용하면 코드 읽는 것을 굉장히 힘들어 합니다.
for ...of
문에 const
와 let
을 적절히 사용하였다.
break
를 이용하여 불필요한 반복을 줄였다.