Algorithm
[백준-11478번/Java] 서로 다른 부분 문자열의 개수
1984
2022. 11. 22. 18:26
https://www.acmicpc.net/problem/11478
11478번: 서로 다른 부분 문자열의 개수
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.
www.acmicpc.net
* Map을 이용하여 중복을 제거 하였다.
(Set을 사용하는 것이 더 나은 방식인 것 같다.)
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = br.readLine();
Map<String, Integer> substring_map = new HashMap<String, Integer>();
// 문자 갯수 (1개 부터)
for (int i = 0; i < str.length(); i++) {
// 시작 위치
for (int j = 0; j < str.length() - i; j++) {
substring_map.put(str.substring(j, j + i + 1), 1);
}
}
System.out.println(substring_map.size());
}
}
728x90