문제 설명
1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.
for문 안에서 num
에 k
가 몇 개 포함되었는지 알고 싶다면?
1)num
을 문자열로 변환하고, 문자열에 k
를 일치시키는 정규표현식을 사용했다.
const regex = new RegExp(k, 'g');
const strNum = num.toString();
2)match()
메서드를 사용해서 일치하는 부분 찾기
const matches = strNum.match(regex)
3)만약 일치한다면 matches
의 길이를 count
에 추가해서 카운트를 업데이트시켜줌
if (matches) {
count += matches.length;
}
function solution(i, j, k) {
let count = 0;
const regex = new RegExp(k, 'g');
for(let num = i; num <= j; num++) {
const strNum = num.toString();
const matches = strNum.match(regex);
if (matches) {
count += matches.length;
}
}
return count;
}