김찬진의 개발 블로그

[23/04/17] B11478 본문

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을 사용하자

'1일1알고 > Java Algorithm' 카테고리의 다른 글

[23/04/17] B2231  (0) 2023.04.17
[23/04/17] B1018  (0) 2023.04.17
23/02/03 [⭐Inf_0203 소수(에라토스테네스 체)]  (0) 2023.02.03
23/02/02 [Inf_0204 피보나치 수열]  (0) 2023.02.03
23/02/02 [⭐Inf_0203 가위바위보]  (0) 2023.02.02
Comments