k의 개수

Haizel·2023년 4월 17일
0

🧬 알고리즘 풀이

목록 보기
9/53
post-thumbnail

문제 설명

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

입출력 예

ijkresult
11316
105055
31020

첫번째 풀이

function solution(i, j, k) {
  let count = 0;
  let start = i - 1;
  while (start < j) {
    start++;
    if (String(start).includes(String(k))) {
      count++;
    }
  }
  return count;
}

💡 코드풀이


  • 반복문을 돌면서 해당 숫자를 문자열로 바꾼 값에 문자열 k 가 포함되어 있으면 count를 하나씩 증가해줬다.

💡 문제점


  • ‘11’과 같이 1(k)가 두번 들어간 숫자에 대해 2번 카운트 해야하는데 → 1번만 카운트 되고 있다.

Better 풀이

function solution(i, j, k) {
  let count = "";
  for (i; i <= j; i++) {
    count += i;
  }
  return count.split(k).length - 1;
}

💡 코드풀이


  1. i부터 j까지 모든 숫자를 count 문자열에 넣어준다.
  2. k로 split해주고 length - 1한 값을 리턴해준다.
profile
한입 크기로 베어먹는 개발지식 🍰

0개의 댓글