main
[백준-11478번/Java] 서로 다른 부분 문자열의 개수 본문
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
'Algorithm' 카테고리의 다른 글
[백준-3053번/Java] 택시 기하학 (0) | 2022.11.22 |
---|---|
[백준-2477번/Java] 참외밭 (0) | 2022.11.22 |
[백준-1269번/Java] 대칭 차집합 (0) | 2022.11.22 |
[백준-1764번/Java] 듣보잡 (0) | 2022.11.22 |
[백준-1620번/Java] 나는야 포켓몬 마스터 이다솜 (0) | 2022.11.22 |
Comments