소개
방금 눈에 보이는 문제를 선택하여 수정했습니다. 바로 시작합시다.
문제
1단계: https://school.programmers.co.kr/learn/courses/30/lessons/147355?language=javascript
내 솔루션
function solution(t, p) {
let cnt = 0;
const T = t.split('');
for (let i = 0; i < T.length; i++) {
const t_p_len = T.slice().splice(i, p.length).join('');
if(t_p_len.length < p.length) break;
if (Number(t_p_len <= Number(p))) cnt++;
}
return cnt
}
처음에는 Splice를 어레이로 사용하고 싶었지만 효율성이 너무 쓰레기였습니다. (물론 접합 시간 복잡도는 O(n)입니다.)
그래서 문자열로 압축을 풀려고했습니다.
두 번째 솔루션
function solution(t, p) {
let cnt = 0;
for (let i = 0; i < t.length; i++) {
const t_p_len = t.slice(i, i+p.length);
if(t_p_len.length < p.length) break;
if (Number(t_p_len <= Number(p))) cnt++;
}
return cnt
}
훨씬 빠릅니다…
코드를 늘리고 효율성을 낭비하는 첫 번째 솔루션인 Splice를 사용하는 이유

js 떼어낼때마다 느끼는건데 범위를 벗어나도 에러가 안나네요… 좀 좋은데…?