[프로그래머스 | JavaScript] 크기가 작은 부분문자열

728x90
반응형

1. 내 코드

function solution(t, p) {
  let arr = t.split('').map(Number); //한개씩 나누기 [3,4,1,5,9,2]
  let newNum = '';
  let newArr = [];

  //t의길이-p의길이까지 반복 (넘어가면 undefined나오니깐)
  for (let i = 0; i <= t.length - p.length; i++) {
    newNum = '';
    for (let j = 0; j < p.length; j++) {
      newNum += arr[i + j]; // 0+0 /0+1 / 0+2
    }
    newArr.push(newNum);
  }
  return newArr.map(Number).filter((x) => x <= p).length;
}

input : t= "3141592" / p:"271"  || output :2

 

1) t를 배열로 만든 후 숫자인 배열로 변환

2) t의길이 - p의길이만큼 반복해서 새로운 배열에 넣기

3) 새로운 배열에 필터 (p보다 작거나 같은 수) => 그 길이 리턴 => 개수 출력 가능

 

2. 다른 사람 풀이

function solution(t, p) {
    let count = 0;
    for(let i=0; i<=t.length-p.length; i++) {
        let value = t.slice(i, i+p.length);
        if(+p >= +value) count++;
    }
    return count;
}

 

▶배열의 slice를 사용

 

 

 

끝.

 

 

반응형