🐣 알고리즘 삐약/💻 백준 삐약

106 삐약 : 백준 11478 | 서로다른 부분 문자열의 개수 [바킹독| HASH |JAVA]

우주수첩 2024. 10. 31. 16:52
728x90

https://www.acmicpc.net/problem/11478

 

 

package BKD_0x15_Hash;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;

public class BOJ_11478 {
    public static void main(String[] args) throws IOException {
        HashSet<String> set = new HashSet<>();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = br.readLine();


        for(int i=0;i<input.length();i++){
            for(int j=i+1;j<=input.length();j++){
                set.add(input.substring(i,j));
            }
        }
        System.out.println(set.size());
    }
}

 

  • substring을 사용하여 추출할 수 있는 모든 부분문자열을 추출한다.
  • HashSet을 사용하여 중복되는 부분 문자열을 제거한다. 

 

set.add(input.substring(i,j));

str.substring(start,end)
// -> str[start~ end-1] 까지의 문자열 반환
// 모두 소문자임 ㅇㅅㅇ..나중에 쓸 때 헷갈리지 마셈

 

 

728x90