[알고리즘문제풀기] 문자열이 몇 번 등장하는지 세기

silver's avatar
Apr 17, 2025
[알고리즘문제풀기] 문자열이 몇 번 등장하는지 세기

문제

내가 작성한 정답

for

class Solution { public int solution(String myString, String pat) { int answer = 0; int len = myString.length(); int pp = pat.length(); for(int i=0; i<=len-pp; i++){ if(myString.substring(i,i+pp).equals(pat)) answer++; } return answer; } }

stream

class Solution { public int solution(String myString, String pat) { int answer = 0; int len = myString.length(); int pp = pat.length(); for(int i=0; i<=len-pp; i++){ if(myString.substring(i,i+pp).equals(pat)) answer++; } return answer; } }

다른 사람들의 정답

startWith

class Solution { public int solution(String myString, String pat) { int cnt = 0; for(int i=0; i<myString.length(); i++) { // startsWith(pat)은 해당 부분 문자열이 pat으로 시작하는지 확인하는 메서드 if(myString.substring(i).startsWith(pat)){ cnt++; } } return cnt; } }

현재 클래스 내에서 정의된 메서드 호출

class Solution { public int solution(String myString, String pat) { // myString에서 pat의 첫 번째 등장 위치를 찾는다. 찾지 못하면 -1을 반환 int idx = myString.indexOf(pat); // pat가 존재하지 않으면 0 반환 // pat 존재하면 1 반환 후 solution메서드 반복 return idx == -1 ? 0 : (1 + solution(myString.substring(idx + 1), pat)); } }
Share article

silver