[백준] 11478번 - substring() (java)

팥빵·2025년 9월 28일

Baekjoon

목록 보기
38/49

주어진 문자열의 서로 다른 부분 문자열의 갯수를 출력하는 문제이다.

String.substring(i, j);

해당 메소드는 문자열 String의 i번째부터 j-1번째 문자열을 읽어준다.

예를들어, 문자열 s = abc라면
i=0, j=1 -> "a"
i=0, j=2 -> "ab"
i=0, j=3 -> "abc"
i=1, j=2 -> "b"
i=1, j=3 -> "bc"
i=2, j=3 -> "c"

위 정보를 바탕으로 설계한 코드는 다음과 같다.

import java.io.*;
import java.util.*;

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<>();
        
        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());
    }
}

맞았습니다!!

profile
반갑습니다

0개의 댓글