Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

main

[백준-11478번/Java] 서로 다른 부분 문자열의 개수 본문

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
Comments