문자열이 몇 번 등장하는지 세기

nacSeo (낙서)·2024년 2월 21일
0

프로그래머스

목록 보기
97/169

문제 설명

문자열 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()메서드를 이용해서도 풀 수 있었다 😮

profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글