🤍 은지log 🤍

[프로그래머스:Javascript] 문자열이 몇 번 등장하는지 세기 본문

🌈 프로그래머스

[프로그래머스:Javascript] 문자열이 몇 번 등장하는지 세기

Eun_zii 2024. 4. 24. 13:28

프로그래머스 Lv.0

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

 

💚 문제설명

 

💚 제한조건

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

💚 풀이

function solution(myString, pat) {
    let answer = 0;
    let index = myString.indexOf(pat);
    while (index !== -1) {
    answer++;
    index = myString.indexOf(pat, index + 1);
    }
    return answer
}

 

 

pat가 myString에 나타나는 횟수를 찾기 위해 answer 변수를 초기화 해둔후,

myString에서 pat가 처음 나타나는 인덱스를 찾는다. ( pat를 찾을 수 없으면 indexOf는 -1을 반환한다. )

💡 indexOf( ) 메서드는 호출한 String 객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환합니다. 일치하는 값이 없으면 -1을 반환합니다.

 

index가 -1이 아닌 한 계속되는 while문을 반복하고, 

answer++ 는 pat를 찾으면 answer변수를 하나씩 증가하고,

index = myString.indexOf(pat, index + 1)는 myString에서 pat를 찾는 역할을 하며, 마지막 pat 바로 뒤의 인덱스에서 검색을 한다.

fromIndexindex + 1을 설정하면 마지막으로 발견된 항목 직후에 다음 항목인 pat에 대한 검색을 시작한다.

myStringpat가 더 이상 발생하지 않으면 indexOf-1을 반환하고 while문은 중지되고, answer를 return한다.

728x90