작은 하위 문자열

소개

방금 눈에 보이는 문제를 선택하여 수정했습니다. 바로 시작합시다.


문제

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 떼어낼때마다 느끼는건데 범위를 벗어나도 에러가 안나네요… 좀 좋은데…?