https://school.programmers.co.kr/learn/courses/30/lessons/147355?language=javascript
function solution(t, p) {
let result = 0;
const tmp = [];
for(let i = 0; i < t.length - p.length + 1; i++){
tmp.push(t.substring(i, i + p.length));
}
for(let j = 0; j < tmp.length; j++){
if(parseInt(tmp[j]) <= parseInt(p)){
result++
}
}
return result;
}
코드 풀이에 앞서, substring에 대해 설명드리겠습니다. 문자열을(시작값, 끝값)으로 자르는 기능입니다. 따라서 반드시 시작값과 끝값을 지정해야 합니다. (끝값을 설정하지 않을 경우 마지막 문자열까지 return합니다. 문제 요구사항에 맞춰 우리는 끝값을 설정해야합니다.
let str = "Hello, World!";
let substring = str.substring(7, 12);
console.log(substring);
우선 임시 배열을 하나 만들어놓고, for문을 돌려 p길이만큼의 숫자를 모두 tmp에 넣어줍니다. for문에 t.length - p.length + 1의 경우 아래 부분의 설명을 읽어보시면 더 정확하게 이해할 수 있습니다. for문이 끝나면 우리가 원하는 숫자는 모두 tmp안에 들어가게 됩니다. 이후 새로운 for문을 만들어 tmp에 들어 있는 숫자와 p라는 숫자의 값을 비교하고, 만얀 p값보다 작거나 같은 숫자가 있다면 result++을 통해 문제 요구사항에 맞춰 값을 구할 수 있습니다.
// length = 7 - 3 + 1 = 5
//for(let i = 0; i < t.length - p.length + 1; i++){
// tmp.push(t.substring(i, i + p.length));
// 0 + 3
// 1 + 4
// 2 + 5
// 3 + 6
// 4 + 7 위 length 5로 인해 4에서 끝난다. 4까지만 해도 1번 case값을 확인할 수 있다.
//}