[프로그래머스] 자바스크립트 - 크기가 작은 부분문자

멤오장·2023년 3월 2일
0

코딩테스트 연습

목록 보기
4/18

[프로그래머스] 코딩테스트 크기가 작은 부분문자


문제 설명

숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요.


입출력 예

tpresult
"3141592""271"2
"500220839878""7"8
"10203""15"3
  • t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다.

문제 풀이

function solution(t, p) {
  let answer = 0; 
  let b = [];

  [...t].forEach((s,i,arr) => {
    let a = arr.slice(i, p.length + i);
    a.length === p.length && b.push(a.join(''));
  })
  answer = [...b].filter(s => s<=p ).length;

  return answer;
}

🤍 slice(시작 index[, 마지막 index])

  • 배열의 시작부터 마지막(미포함)까지에 대한 새로운 배열 반환 (원본 배열 바뀌지 않음)
const animals = ['dog', 'duck', 'cat', 'rabbit'];
animals.slice(2);		// ['cat', 'rabbit']
animals.slice(1, 3);	// ['duck', 'cat']

🤍 splice(시작 index[, 제거할 요소의 수[, 추가할 요소]])

  • 배열의 기존 요소를 삭제, 교체, 추가하여 내용을 변경
const animals = ['dog', 'duck', 'cat', 'rabbit'];
animals.splice(0, 1);		   // animals ['duck', 'cat', 'rabbit']
animals.splice(1, 0, 'tiger'); // animals ['duck', 'tiger', 'cat', 'rabbit']
animals.splice(2); 			   // animals ['duck', 'tiger']
profile
일단 적기

0개의 댓글