문제 설명
문자열 myString과 pat이 주어집니다. myString에서 pat이 등장하는 횟수를 return 하는 solution 함수를 완성해 주세요.
제한사항
1 ≤ myString ≤ 1000 1 ≤ pat ≤ 10
나의 코드
class Solution {
public int solution(String myString, String pat) {
int count = 0;
int idx = 0;
while((idx = myString.indexOf(pat, idx)) != -1) {
count++;
idx++;
}
return count;
}
}
다른 사람 코드
class Solution {
public int solution(String myString, String pat) {
int cnt = 0;
for(int i=0; i<myString.length(); i++) {
if(myString.substring(i).startsWith(pat)){
cnt++;
}
}
return cnt;
}
}
substring()
과 startsWith()
메서드 활용
느낀 점
문제를 보고, 앞서 공부했던 indexOf()
를 응용하여 풀어야겠다는 생각이 들었다. 주어진 myString
에서 pat
이 등장할 때 count
로 세고, 앞에서부터 등장한 인덱스+1
만큼을 제외하고 다시 pat
을 찾는 작업을 pat
이 없을 때(indexOf()
의 결과값이 -1
일 때)까지 반복하여 문제를 풀어냈다. 조금 응용된 문제였으나, 잘 정리한다면 풀 수 있었던 문제! 다른 사람 코드를 보니 startsWith()
메서드를 이용해서도 풀 수 있었다 😮