[Programmers] k의 개수

그래도 해야지·2023년 5월 22일
1

Programmers

목록 보기
39/40
post-thumbnail

문제 설명
1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.

🤔 해설

for문 안에서 numk가 몇 개 포함되었는지 알고 싶다면?

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;
}

0개의 댓글