문자열 S가 주어졌을 때, S의 서로 다른 부분 문자열의 개수를 구해야 하는 문제이다.
=>
1) 저장해야 하는 값이 String형 하나이다. (인덱스같은 다른 정보가 필요하지 않음)
2) 중복값을 제거해야 한다.
==> HashSet 사용!
1) 데이터 저장 형태
2) 중복 값 처리
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 str = br.readLine();
HashSet<String> map = new HashSet<String>();
for(int i=0; i<=str.length(); i++) {
for(int j=i+1; j<=str.length(); j++) {
map.add(str.substring(i, j));
}
}
System.out.println(map.size());
}
}