1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i
, j
, k
가 매개변수로 주어질 때, i
부터 j
까지 k
가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.
i | j | k | result |
---|---|---|---|
1 | 13 | 1 | 6 |
10 | 50 | 5 | 5 |
3 | 10 | 2 | 0 |
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번만 카운트 되고 있다.
function solution(i, j, k) {
let count = "";
for (i; i <= j; i++) {
count += i;
}
return count.split(k).length - 1;
}
💡 코드풀이
- i부터 j까지 모든 숫자를 count 문자열에 넣어준다.
- k로 split해주고 length - 1한 값을 리턴해준다.