[JavaScript] Lv0 - 문자열이 몇 번 등장하는지 세기

Moon·2025년 2월 9일
0
post-thumbnail

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

문제 설명

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


제한사항

  • 1 ≤ myString ≤ 1000
  • 1 ≤ pat ≤ 10

입출력 예

myStringpatresult
"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 합니다.

function solution(myString, pat) {
    const regex = new RegExp(`(?=${pat})`, 'g'); // 겹치는 패턴까지 검색하는 정규표현식
    return (myString.match(regex) || []).length;
}

코드설명

  1. RegExp 객체 생성:
    • 정규표현식 (?=${pat})패턴이 시작하는 모든 위치를 검색합니다.
    • g 플래그를 사용하여 전체 문자열을 탐색합니다.
    • 예를 들어, pat이 "ana"이고 myString이 "banana"라면, 2번과 4번 위치를 모두 탐색합니다.
  2. match 메서드:
    • myString.match(regex)regex와 매칭되는 모든 시작 위치를 배열로 반환합니다.
    • 패턴이 없으면 null을 반환하므로, || []로 빈 배열을 기본값으로 설정합니다.
  3. 결과 계산:
    • 배열의 길이를 반환하여 pat이 등장한 횟수를 계산합니다.

정규표현식(Regular Expression) 은 문자열에서 특정 패턴을 검색, 매칭, 치환하는데 사용한는 강력한 도구입니다. 간단히 말해 문자열 내에서 특정 규칙을 만족하는 텍스트를 찾아내기 위한 문자열 검색 언어입니다.

정규표현식의 기본 개념

  1. 패턴 정의:
  • 정규표현식은 특정 문자열 패턴을 정의하기 위해 특수한 문법을 사용합니다.
  • 예: “a*b”는 ‘a’가 0번 이상 반복되고 뒤에 ‘b’가 오는 문자열과 매칭됩니다.
  1. 문자열 매칭
  • 정규표현식을 사용해 문자열에서 특정 규칙을 따르는 부분을 찾을 수 있습니다
  1. 응용
  • 텍스트 검색, 테이터 검증(예: 이메일, 전화번호), 문자열 치환 등 다양한 작업에 사용됩니다.

profile
MOON.DEVLOG

0개의 댓글