[백준/Java] 1543번 : 문서 검색 (문자열)

김하밍·2023년 12월 6일

알고리즘

목록 보기
10/22

1. 문제

2. 접근 방식

  • replace() 함수 활용
  • 첫째 줄에 입력된 문자열 S에서 둘째 줄에 입력된 문자열 S2를 모두 제거하여 갱신된 S의 길이를 기존의 S 길이에서 뺀다.
    그러면, 찾아내야할 문자열(찾아서 빼낸 전체, 아직 몇 개인지는 모르지만) 길이가 남는다. 이 길이에서 찾아내야할 문자열 1개의 길이만큼을 나눠주면 몇 개인지 나온다.

3. 제출한 코드

public class S1543 implements P1543 {
        // https://www.velog.hammingu~~~~~~~~~~~~~~~
        // Todo: 인덱스 0부터 n-1 까지 하나의 반복문을 돌 때, 갯수 찾기 ? (X)
        //  1. S에서 모든 S2를 제거하기
        //  2. 제거된 후의 S의 길이 구하기
        //  3. 문자열 S의 길이에서 문자열 S2의 길이를 나눈다.

        public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String S = br.readLine();
        String S2 = br.readLine();

        // 문자열 S의 길이 재기
        int size = S.length();
        int size2 = S2.length();

        // 문자열 S에서 문자열 S2 찾아서 "" 로 바꾸기 즉, 제거하기 !
        S = S.replace(S2, "");
        // 원래 문자열의 길이에서 갱신된 문자열의 길이를 빼고, 문자열 S2의 길이로 나누어 중복 없이 등장하는 횟수를 구한다.
            int count = ((size - S.length()) / size2);
            System.out.println(count);
    }
profile
나만의 언어로 기록하며 성장하기 !

0개의 댓글