중복되지 않게 input스트링을 검색해야하므로 이미 검색된 부분은 visited 배열을 통해 해결했다.
이미 검색된 부분은 true 처리하여 다시 검색되지 않도록 했다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args ) throws IOException{
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String input = sc.nextLine();
int cnt = 0;
boolean [] visited = new boolean[str.length()];
Arrays.fill(visited, false);
for(int i = 0 ; i < str.length()- input.length()+1; i ++) {
//문서중에 단어로 시작하는곳이 있음
if(input.charAt(0) == str.charAt(i) && !visited[i]) {
//시작지점부터 단어 크기로 자른거랑 단어가 동일함
if(str.substring(i,i+input.length()).equals(input)) {
//System.out.printf("%s ", str.substring(i,i+input.length()));
cnt++;
for(int k = i ; k < i+input.length(); k++) {
//검색된 부분은 true 처리해서 다시 검색 안되도록 처리
visited[k] = true;
}
}
}
}
System.out.println(cnt);
}
}