Cherry & Cherish

[JavaScript] 프로그래머스(Programmers) 옹알이(2) 본문

Algorithm/Programmers

[JavaScript] 프로그래머스(Programmers) 옹알이(2)

앵도라지 2023. 8. 8. 20:32

자바스크립트 알고리즘 연습을 위해, Python3으로 풀이 후 Javascript로 변환하는 과정을 기록하고 있습니다.

문제

머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.

 

제한사항

- 1 ≤ babbling의 길이 ≤ 100

- 1 ≤ babbling[i]의 길이 ≤ 30

- 문자열은 알파벳 소문자로만 이루어져 있습니다.

 

접근 :

일반 배열에 문제에서 준 옹알이 문자열을 넣어두고 2중 반복문으로 동일한 문자가 있는지 체크하는 방식으로 문제를 풀었다.

 

 

풀이(Python) :

def solution(babbling):
    count = 0
    babble = [ "aya", "ye", "woo", "ma" ]
    for utter in babbling:
        for text in babble:
            if text * 2 not in utter:
                utter = utter.replace(text, ' ')
        if utter.strip() == '':
            count += 1
    return count

 

풀이(JavaScript) :

function solution(babbling) {
  const can = ["aya", "ye", "woo", "ma"];
  let count = 0;

  for (let i = 0; i < babbling.length; i++) {
    let babble = babbling[i];

    for (let j = 0; j < can.length; j++) {
      if (babble.includes(can[j].repeat(2))) {
        break;
      }

      babble = babble.split(can[j]).join(" ");
    }

    if (babble.split(" ").join("").length === 0) {
      count += 1;
    }
  }

  return count;
}
Comments