🔻 k의 개수
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
👀
split() 여집합을 이용한 풀이를 계속 보기만하고 활용을 못해서 기록..
그리고 문자열로 변환하는 방식도!!!
function solution(i, j, k) {
let answer = 0;
for (i; i <= j; i++) {
answer += i.toString().split('').filter(v => v === k.toString()).length;
}
return answer;
}
function solution(i, j, k) {
let a ='';
for(i;i<=j;i++){
a += i;
}
return a.split(k).length-1;
}
매번 문자열을 만들 때 .toString() 메소드를 사용하였는데, 문자열에 더하는 방식도 사용해보자.
let answer = '';
console.log(typeof(answer + 3)) // string
string.split(seperator, limit) 함수는 문자열을 seperator라는 구분자를 기준으로 잘라서 최대 분할 개수 크기인 limit크기 이하의 배열에 저장한다. 매번 string.split('')을 통해 문자열을 배열로 변환할 때만 사용하였는데, seperator를 좀 더 활용하여 문자열에서 원하는 값의 개수를 찾을 때도 사용할 수 있다
// target 문자열에서 '9'의 개수를 찾고 싶을 때
let target = '393';
console.log(target.split(9)) // ['3', '3']
/* 찾으려는 값 (seperator)를 기준으로 자르기 때문에
항상 찾으려는 값보다 하나 더 큰 값을 split 결과값의 길이로 가진다.
때문에 -1을 해주어야 한다.
*/
console.log(target.split(9).length -1) // 1