1일1알고/Java Algorithm

[23/04/17] B11478

kim chan jin 2023. 4. 17. 00:13
package baekjoon;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;

public class B11478 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine(); // ababc

        // Set에 담을 준비
        Set strSet = new HashSet();

        // 서로 다른 부분 문자열을 Set에 담기
        for(int i=0; i<=str.length(); i++) { // substring 때문에 "<=" 사용
            for(int j=i+1; j<=str.length(); j++) {
                strSet.add(str.substring(i, j)); // j(end)는 포함하지 않기 때문
            }
        }

        System.out.println(strSet.size());

    }
}

 

느낀점

중복을 지우려면 Set을 사용하자

for 반복문의 조건이 < 또는 <= 를 써야하는 이유를 정확히 이해하자 

substring을 사용하자