숫자놀이

WooBuntu·2020년 8월 30일
0

JS 100제

목록 보기
20/34

숫자놀이

내 첫 풀이

function numberPlay(count) {
  let str = "1";
  while (count > 1) {
    const hash = {};
    for (const num of str) {
      !hash.hasOwnProperty(num) ? (hash[num] = 1) : hash[num]++;
    }
    str = Object.entries(hash)
      .sort((a, b) => a[0] - b[0])
      .map((entry) => entry.join(""))
      .join("");
    count--;
  }
  return str;
}

정규 표현식을 반영한 풀이

function numberPlay(count) {
  let str = "1";
  while (count > 1) {
    let newStr = "";
    for (let i = 1; i < 10; i++) {
      const regExp = new RegExp(i, "g");
      const lengthOfMatched = str.match(regExp) ? str.match(regExp).length : 0;
      if (lengthOfMatched > 0) {
        newStr = newStr + i + lengthOfMatched;
      }
    }
    str = newStr;
    count--;
  }
  return str;
}
  • RegExp객체를 사용하면 변수를 정규표현식으로 만들 수 있다는 게 유용한 것 같다.

0개의 댓글