[프로그래머스 LV.0] (Javascript) 옹알이 (1)

Hannah Lee·2023년 1월 3일
5

프로그래머스 LV.0

목록 보기
1/10

😎 링크

프로그래머스 - 옹알이 (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");  // 할 수 있는 단어는 X로 치환
      }
    }

    init = init.replace(/X/gi, "");  // X를 모두 공백으로 치환하고 나서
    if (init.length === 0) {  // 공백이 되면 answer에 추가
      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 옵션: 대소문자 구분 없이
profile
프론트 어쩌고

3개의 댓글

comment-user-thumbnail
2023년 3월 24일

앞뒤 문자 합쳐지는 것에 대한 대처방안으로 임의 문자를 넣는 걸 생각 못했었네요!
좋은 아이디어 얻고 갑니다!

답글 달기
comment-user-thumbnail
2023년 4월 6일

친절한 설명이네요 잘보겠습니돵

답글 달기
comment-user-thumbnail
2023년 6월 21일

풀이 너무 재밌어요 감사합니다!@

답글 달기