문제 내용은 문자열을 하나 받은 뒤, 다음 받은 문자열로 첫 문자열에서 두 번째에 해당하는 문자열이 몇 개 들어있는지 확인해서 갯수를 출력해주면 되는 문제인데
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String text = br.readLine();
String findStr = br.readLine();
int lastIndex = 0;
int count = 0;
while (lastIndex != -1) {
lastIndex = text.indexOf(findStr, lastIndex);
if (lastIndex != -1) {
count++;
lastIndex += findStr.length();
}
}
System.out.println(count);
}
}
다양한 접근 방식으로 문제를 풀어줄 수 있는데, 결국은 문자열에 특정 값을 찾을 때 중복되지 않게 하는 것이 중요하므로 While을 돌려서 모든 케이스를 찾아주되, String은 indexOf를 지원하므로 특정 문자열에서, 찾으려는 문자열을 찾아줄 수 있는데 찾아서 -1이 나오지 않은 경우에는 시작 문자열을 찾는 문자열 길이만큼 증가시키면서 계속 찾아 갯수를 반환해주면 정답을 얻을 수 있다.
Leave a Reply