[백준] 1543번 문서 검색

개발자 P군·2025년 4월 29일

백준

목록 보기
21/57
post-thumbnail

📖 문제

세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한다. 예를 들어, 문서가 abababa이고, 그리고 찾으려는 단어가 ababa라면, 세준이의 이 함수는 이 단어를 0번부터 찾을 수 있고, 2번부터도 찾을 수 있다. 그러나 동시에 셀 수는 없다.

세준이는 문서와 검색하려는 단어가 주어졌을 때, 그 단어가 최대 몇 번 중복되지 않게 등장하는지 구하는 프로그램을 작성하시오.

✍ 입력

첫째 줄에 문서가 주어진다. 문서의 길이는 최대 2500이다. 둘째 줄에 검색하고 싶은 단어가 주어진다. 이 길이는 최대 50이다. 문서와 단어는 알파벳 소문자와 공백으로 이루어져 있다.

📄 출력

첫째 줄에 중복되지 않게 최대 몇 번 등장하는지 출력한다.

✅ 코드

import java.io.BufferedReader;  
import java.io.IOException;  
import java.io.InputStreamReader;  
import java.util.StringTokenizer;  
  
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String sentence = br.readLine();
        String word = br.readLine();

        int result = 0;
        for(int i=0; i<sentence.length(); i++) {
            if(sentence.startsWith(word, i)) {
                i += word.length() -1;
                result++;
            }
        }

        System.out.println(result);
    }
}

🧩 코드풀이

해당 문제는 반복문을 이용하여 문장에서 제시된 단어를 찾기 위해 startsWith() 메소드를 이용하여 찾고, 찾은 갯수만큼 1씩 더해주면 되는 문제입니다.

profile
문제를 발견하고 해결하는 과정을 통해 얻은 새로운 지식을 공유하고자 합니다.

0개의 댓글