문자열이 몇 번 등장하는지 세기

도비김·2024년 2월 26일
0
문제 설명

문자열 myStringpat이 주어집니다. myString에서 pat이 등장하는 횟수를 return 하는 solution 함수를 완성해 주세요.


제한사항
  • 1 ≤ myString ≤ 1000
  • 1 ≤ pat ≤ 10

입출력 예
myString pat result
"banana" "ana" 2
"aaaa" "aa" 3

입출력 예 설명

입출력 예 #1

  • "banana"에서 1 ~ 3번 인덱스에서 한 번, 3 ~ 5번 인덱스에서 또 한 번 "ana"가 등장해서 총 두 번 등장합니다. 따라서 2를 return 합니다.

입출력 예 #2

  • "aaaa"에서 0 ~ 2번 인덱스에서 한 번, 1 ~ 3번 인덱스에서 한 번, 2 ~ 4번 인덱스에서 한 번 "aa"가 등장해서 총 세 번 등장합니다. 따라서 3을 return 합니다.

solution

function solution(myString, pat) {
    return Array(myString.length).fill(0).reduce((a,c,i) => myString.slice(i).indexOf(pat) == 0 ? a += 1 : a, 0);
}

다른풀이

function solution(myString, pat) {
    const reg = new RegExp(`(?=${pat})`, "g")
    return myString.match(reg)?.length || 0;
}

const solution=(s,p)=>Array(s.length-p.length+1).fill('').map((v,i)=>s.slice(i,i+p.length)).filter(v=>v==p).length;
profile
To Infinity, and Beyond!

0개의 댓글