<문제 풀이>
function solution(t, p) {
let numArr = [];
let count = 0
for(let i = 0; i < t.length; i++){
let num = t.slice(i,i+p.length)
if(num.length===p.length)
numArr.push(num)
}
let arr = numArr.map(Number)
arr.forEach((a)=>{
if(a <= p)
count++
}
)
return count
}
문자열 t 안에서 p의 길이와 같은 부분문자열을 전부 찾고,
그 중 p보다 작거나 같은 값의 개수를 구하는 문제다.
num이라는 변수에 0부터 시작하는 i번째 인덱스부터 p의 개수만큼을 slice했다.
예시처럼 3141592 , 271 이 있다고 하면 num이 될 수 있는 수는 314 141 415 159 592가
될테고, 추가적으로 92, 2가 같이 반환된다. num은 i부터 시작되는 수가 전부 반환된 것인데,
i가 t의 맨끝까지 검사하기 때문에 num값들 중 갯수가 p와 맞을 경우 numArr에 넣어주었다.
그리고 numArr을 돌며 담겨진 수들 중 p보다 작거나 같으면 카운트했다.
728x90
'개발 > 코딩테스트' 카테고리의 다른 글
[프로그래머스 | JavaScript] 가장 가까운 같은 글자 (0) | 2023.05.20 |
---|---|
[백준 | JavaScript] 1152 단어의 개수 (1) | 2023.05.19 |
[백준 | JavaScript] 10810 공 넣기 (0) | 2023.05.15 |
[백준 | JavaScript] 1110 더하기 사이클 (0) | 2023.05.14 |
[프로그래머스 | JavaScript] 꼬리 문자열 (0) | 2023.05.13 |