Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- 플러터
- 시큐리티
- CS
- Spring Security
- programmers
- JPA
- Java
- 자바
- 스프링 부트 쇼핑몰 프로젝트 with JPA
- 자료구조
- DB
- 데이터베이스
- 프로그래머스
- spring
- Flutter
- 스프링
- baekjoon
- python
- backjoon
- 데이터
- Oracle
- 네트워크
- 자바스크립트
- 스프링부트
- 리눅스
- 파이썬
- springboot
- 백준
- CS지식
- postgresql
Archives
- Today
- Total
Jin's Dev Story
[실버 3] 11478번 서로 다른 부분 문자열의 개수 본문
문제 링크 : https://www.acmicpc.net/problem/11478
문제
문자열 S가 주어졌을 때, S의 서로 다른 부분 문자열의 개수를 구하는 프로그램을 작성하시오.
부분 문자열은 S에서 연속된 일부분을 말하며, 길이가 1보다 크거나 같아야 한다.
예를 들어, ababc의 부분 문자열은 a, b, a, b, c, ab, ba, ab, bc, aba, bab, abc, abab, babc, ababc가 있고, 서로 다른것의 개수는 12개이다.
입력
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.
출력
첫째 줄에 S의 서로 다른 부분 문자열의 개수를 출력한다.
예제 입력 : ababc
예제 출력 : 12
코드
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String S = br.readLine();
Set<String> set = new HashSet<String>();
for(int i=0; i<S.length(); i++)
for(int j=i+1; j<= S.length(); j++)
set.add(S.substring(i, j));
System.out.println(set.size());
}
}
'Coding Test > 백준[JAVA]' 카테고리의 다른 글
[실버 5] 13241번 최소공배수 (0) | 2023.09.23 |
---|---|
[브론즈 1] 1934번 최소공배수 (0) | 2023.09.23 |
[실버 4] 1764번 듣보잡 (0) | 2023.09.23 |
[실버 4] 1269번 대칭 차집합 (0) | 2023.09.23 |
[실버 4] 1620번 나는야 포켓몬 마스터 이다솜 (0) | 2023.09.22 |