[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.