프로그래머스 181871번 문자열이 몇 번 등장하는지 세기 - Python, Java
문제 설명
프로그래머스 181871번 문자열이 몇 번 등장하는지 세기
문자열 myString과 pat가 주어집니다. 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;
}
}