최대 1 분 소요

문제 설명

프로그래머스 181871번 문자열이 몇 번 등장하는지 세기

문자열 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 합니다.

코드 구현

Python

def solution(myString, pat):
    answer = 0
    index = 0

    while True:
        found = myString.find(pat, index)

        if found == -1:
            break
        else:
            answer += 1
            index = found + 1

    return answer

Java

class Solution {
    public int solution(String myString, String pat) {
        int answer = 0;

        int index = 0;

        while (true) {
            int found = myString.indexOf(pat, index);

            if (found == -1) {
                break;
            } else {
                index = found + 1;
                answer += 1;
            }
        }

        return answer;
    }
}