고차함수를 이용해서 보다 가독성이 좋게 만든 코드를 확인하고 싶습니다.
아니면 저와 다른 아이디어로 푼 여러분들의 풀이를 확인하고 싶습니다. ^^
function solution(i, j, k) {
let answer = 0; // k의 갯수를 저장할 변수
const numbers = []; // 숫자들을 저장할 배열
let splitedArr = []; // 숫자를 쪼개서 저장할 배열
const startNum = i; // 배열의 사작 번호
const endNum = j; // 배열의 종료 번호
for (let l = startNum; l <= endNum; l++) {
numbers.push(String(l)); // 시작번호에서 종료번호까지 하나씩 numbers 배열에 저장
}
numbers.forEach((val) => {
if (val > 9) {
splitedArr.push(val.split('')); // numbers의 요소가 9보다 크면 쪼개어 splitedArr에 저장
} else {
splitedArr.push(val); // numbers의 요소가 10보다 작으면 바로 splitedArr에 저장
}
});
const testArr = splitedArr.flat(Infinity); // splitedArr에 flat 메서드 적용하여 testArr 변수에 저장
for (let m = 0; m < testArr.length; m++) {
if (testArr[m] === String(k)) { // testArr에 있는 요소 중 k의 갯수를 카운트
answer += 1;
}
}
return answer;
}
JavaScript
복사