프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트] 문자열이 몇 번 등장하는지 세기(Java)

Sigfriede 2023. 5. 24. 01:00

  문제 설명

  문자열 myString과 pat이 주어집니다. myString에서 pat이 등장하는 횟수를 return 하는 solution 함수를 완성해 주세요.

 

  제한사항

  • 1 <= myString <= 1000
  • 1 <= pat <= 10

 

  입출력 예

myString pat result
"banana" "ana" 2
"aaaa" "aa" 3
class Solution {
    public int solution(String myString, String pat) {
        int answer = 0;
        for (int i = 0; i <= myString.length() - pat.length(); i++) {
            if (myString.substring(i, i + pat.length()).equals(pat)) {
                answer++;
            }
        }
        return answer;
    }
}

  for문이 myString의 길이에서 pat의 길이만큼 뺀 값만큼 순회합니다. if문에서 substring 메소드를 이용하여 문자열 myString을 i부터 i에 pat의 길이만큼 더한 값만큼 자릅니다. 이를 equals 메소드를 이용하여 문자열 pat과 동일한지 비교합니다. 이 과정은 비교하고자 하는 원래 문자열을 pat과 같은 길이로 잘라 비교하고, 다음 인덱스로 넘어가는 과정을 반복하면서 pat이 몇 번 등장하는지 확인하는 것입니다.