Post

[Programmers] #181871 - 문자열이 몇 번 등장하는지 세기 [Java][C++][Python]

[Programmers] #181871 - 문자열이 몇 번 등장하는지 세기 [Java][C++][Python]

문제 링크


1. 아이디어

문자열 myString에서 pat이 등장하는 횟수를 구하는 문제로 myString의 각 인덱스를 시작 위치로 잡고 pat으로 시작하는지 판단하면 된다.


2. 복잡도

접근시간공간
풀이$O(N \times M)$$O(1)$

($N$ = myString의 길이, $M$ = pat의 길이)


3. 코드

풀이 [Java][C++][Python]

1
2
3
4
5
6
7
8
9
10
class Solution {
    public int solution(String myString, String pat) {
        int cnt = 0;
        for (int i = 0; i < myString.length(); i++) {
            if (myString.indexOf(pat, i) == i) cnt++;
        }

        return cnt;
    }
}
1
2
3
4
5
6
7
8
9
10
11
#include <bits/stdc++.h>
using namespace std;

int solution(string myString, string pat) {
    int cnt = 0;
    for (int i = 0; i < myString.size(); i++) {
        if (myString.find(pat, i) == i) cnt++;
    }

    return cnt;
}
1
2
def solution(myString, pat):
    return sum(myString.find(pat, i) == i for i in range(len(myString)))

This post is licensed under CC BY 4.0 by the author.