https://www.acmicpc.net/problem/11478
11478번: 서로 다른 부분 문자열의 개수
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.
www.acmicpc.net
해석 및 팁
HashSet은 중복을 허용하지 않으므로 문자열을 입력받은 후 반복문과 substring을 통해 HashSet에 잘라서 저장한 후 HashSet의 크기를 출력해 주면 됩니다.
Java 코드
import java.util.Scanner;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
HashSet<String> set = new HashSet<>();
String str = sc.next();
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());
}
}
'백준' 카테고리의 다른 글
백준 1735 분수 합(Java) (0) | 2023.02.03 |
---|---|
백준 1449 수리공 항승(Java) (0) | 2023.02.03 |
백준 1935 후위 표기식2(Java) (0) | 2023.02.03 |
백준 10451 순열 사이클(Java) (0) | 2023.02.03 |
백준 10972 다음 순열(Java) (1) | 2023.02.03 |