Problem Solving/구현
BOJ1543 문서검색
윤재에요
2024. 1. 24. 16:06
https://www.acmicpc.net/problem/1543
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str1 = br.readLine();
String str2 = br.readLine();
int count =0;
while(str1.contains(str2)){
str1 = str1.replaceFirst(str2,"_");
count++;
}
System.out.println(count);
}
}
처음에는 일치하는 부분을 ""으로 바꾸었는데
aababa
aba
(a___ba 공백으로 replace하면 aba가 생긴다.)
같은 반례가 있어
문제에서 주어지지않는 문자인 "_" 로 바꾸어 주었다.
모범답
import java.util.Scanner;
class Main
{
public static void main (String[] args)
{
Scanner sc = new Scanner(System.in);
String doc = sc.nextLine();
String word = sc.nextLine();
int startIndex = 0;
int count = 0;
while (true) {
int findIndex = doc.indexOf(word, startIndex);
if (findIndex < 0)
break;
startIndex = findIndex + word.length();
count++;
}
System.out.println(count);
}
}