
서로 다른 것의 개수를 요구했기에 Set을 사용하기로 했다.
이중반복문과 substring을 이용해 부분문자열을 set에 담고
그 크기를 출력했다.
package Silver.S3;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
public class S11478 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
br.close();
HashSet<String> set = new HashSet<>();
for (int i = 0; i <= str.length(); i++) {
for (int j = i + 1; j <= str.length(); j++) {
set.add(str.substring(i, j));
}
}
System.out.println(set.size());
}
}

문제의 분류가 트리쪽에도 포함되어있어
이 문제를 어떻게 트리로 해결하나 했는데
분류가 잘못되었는지, 아니면 다들 HashSet으로 해결하고 끝낸것인지는 몰라도
트리로 된 풀이는 찾을 수 없었다.