1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.
1 ≤ i < j ≤ 100,000
0 ≤ k ≤ 9
function solution(i, j, k) {
var answer = 0;
for (let l=i; l<j+1; l++) {
var str_num = String(l).split("")
console.log(str_num)
if (String(k) in str_num) {
answer += 1;
}
console.log(k)
}
return answer;
}
in
연산자를 용도에 맞지 않게 사용하고 있었다. in
연산자는 명시된 속성이 명시된 객체에 존재하는지 여부를 판단하는 메서드!includes
를 사용해야한다.function solution(i, j, k) {
var answer = 0;
for (let l = i; l < j + 1; l++) {
var str_num = String(l).split("");
console.log(str_num);
if (str_num.includes(String(k))) {
console.log(true);
answer += 1;
}
console.log(k);
}
return answer;
}
console.log(solution(1, 13, 1));
in
연산자 대신에 includes
메서드를 사용하기는 하지만 포함 여부만 확인하고 answer
에 + 1하기 때문에 11처럼 1이 두개가 되는 경우에는 한 개로만 판단해서 답이 되지 않는다.function solution(i, j, k) {
var answer = 0;
for (let l = i; l < j + 1; l++) {
var str_num = String(l).split("");
for (let m = 0; m < str_num.length; m++) {
if (str_num[m] === String(k)) {
answer += 1;
}
}
}
return answer;
}
str_num
로 숫자를 하나씩 문자로 바꾸어 배열로 저장해서 for문을 돌며 k값을 찾았다.