😎 링크
프로그래머스 - 옹알이 (1)
😎 고려할 사항
- replace 함수를 써서 말할 수 있는 단어를 제외시켜주면 됨.
- 단 공백으로 치환할 경우, 공백의 앞-뒤 문자가 합쳐져 새로운 단어를 형성하니 주의.
(ex. wyeoo → woo → 공백 이 되지만, 사실 wyeoo는 말할 수 없는 단어다.)
- 앞-뒤 문자가 합쳐질 수 없도록 다른 문자를 넣어주면 된다.
(아래 코드에서는 대문자 X로 치환함)
😎 소스코드
function solution(babbling) {
var answer = 0;
let can = ["aya", "ye", "woo", "ma"];
for (let i in babbling) {
let init = babbling[i];
for (let j in can) {
if (babbling[i].includes(can[j])) {
init = init.replace(can[j], "X");
}
}
init = init.replace(/X/gi, "");
if (init.length === 0) {
answer += 1;
}
}
return answer;
}
😎 문법 정리
.replace(A, B)
: 문자열 중에 A를 B로 치환하여 반환한다.
replaceAll()
: 문자열 중에 모든 A를 B로 치환하여 반환한다.
- Javascript에는 replaceAll 함수가 없으므로, replace에 정규식을 넣어 사용한다.
let myString = "취업할래 취업시켜줘";
let result = "";
result = myString.replace("취업", "결혼");
result = myString.replace(/취업/gi, "결혼");
- g 옵션: 모든 영역에 대해
- i 옵션: 대소문자 구분 없이
앞뒤 문자 합쳐지는 것에 대한 대처방안으로 임의 문자를 넣는 걸 생각 못했었네요!
좋은 아이디어 얻고 갑니다!