https://www.acmicpc.net/problem/11478
11478번: 서로 다른 부분 문자열의 개수
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.
www.acmicpc.net
풀이 과정
- 이중 반복문을 이용해 substring으로 자른 문자열을 HashSet에 저장
- HashSet의 size 출력
String substring()
velog
velog.io
- 파라미터 2개는 시작 지점과 끝지점을 전달받아 시작지점부터 끝지점 -1까지 리턴
문자열변수명.substring(시작 지점, 끝지점)
- 시작지점 ~ (끝지점-1)까지 자름
String[ ] split()
- 특정 문자열을 파라미터로 받아서 해당 문자열을 기준으로 문자열을 잘라 String 배열에 넣어줌
String[] strarr = 문자열변수명.split(기준문자)
정답
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashSet;
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));
HashSet<String> set = new HashSet<String>();
String s = br.readLine();
for(int i=0; i<s.length(); i++)
{
for(int j=i+1; j<=s.length(); j++)
{
String sub = s.substring(i,j);
set.add(sub);
}
}
bw.write(set.size()+"");
bw.flush();
bw.close();
}
}

'Java > 백준' 카테고리의 다른 글
| [JAVA] 백준 2164 카드 2 (0) | 2024.02.14 |
|---|---|
| [JAVA] 백준 18258 큐 2 (0) | 2024.02.14 |
| [JAVA] 백준 1269 대칭 차집합 (1) | 2024.02.13 |
| [JAVA] 백준 13909 창문 닫기 (0) | 2024.02.13 |
| [JAVA] 백준 1764 듣보잡 (0) | 2024.02.13 |