본문 바로가기
Beakjoon&프로그래머스/Java

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

by 현장 2025. 12. 24.

-Code

import java.util.HashSet;
import java.util.Scanner;

public class BOJ11478 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String str = sc.next();
        
        int strLen = str.length();

        HashSet<String> stringParts = new HashSet<>();
        for (int i = 1; i < strLen + 1; i++) {
            for (int j = 0; j < strLen; j++) {
                // 범위 벗어나면 탈출
                if (j + i >= strLen + 1) {
                    break;
                }
                // i가 늘어날때마다 자르는 문자열의 길이 증가
                String part = str.substring(j, j + i);
                stringParts.add(part);
            }
        }

        System.out.println(stringParts.size());
        sc.close();
    }
}