Programmers '크기가 작은 부분문자열' 문제 보러가기
문자열 t를 문자열 p의 길이만큼 잘라가며 차례로 비교했다.
function solution(t, p) {
let cnt =0;
for(let i=0;i<=t.length-p.length;i++){
let temp = t.substr(i,p.length);
if(Number(temp) <= Number(p)){
cnt++;
}
}
return cnt;
}
; 문자열에서 특정 위치에서 시작하여 특정 문자 수 만큼의 문자들을 반환한다.
str.substr(start[, length])
start >= 0
이고 start >= 문자열 전체 길이
start < 0
이라면 문자열 끝에서 start 숫자 만큼 뺀 곳에서 시작한다.length <=0
*조수원 님의 코드를 참고하였습니다.
1. substr()
대신 slice()
MDN에 따르면 현재 String.prototype.substr()
이 웹 표준에서 제거된 것은 아니나 새로운 ECMAScript 코드를 작성할 때 해당 메서드의 사용이나 존재를 가정해서는 안된다고 한다.
*slice()
; 어떤 배열의 begin 부터 end 까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환한다.
arr.slice([begin[, end]])
begin < 0
는 끝에서부터의 길이를 나타낸다.begin > 배열의 길이
end < 0
은 끝에서부터의 길이를 나타낸다.end > 배열의 길이
2.+
를 사용한 숫자 변환
javascript에서 숫자로만 이루어진 문자열 앞에 +
를 붙이면 숫자로 변환된다.
function solution(t, p) {
let cnt =0;
for(let i=0;i<=t.length-p.length;i++){
let temp = t.slice(i,i+p.length);
if(+p >= +temp){
cnt++;
}
}
return cnt;
}