반응형
문제 출처: https://www.acmicpc.net/problem/11478
1. 문제 접근방식
먼저 가능한 부분 문자열을 모두 구하고 중복을 제거하는 방식을 생각해보았다.물론 배열 내부에 이미 존재하는지의 여부에 따라 배열에 넣는 방법도 있지만 Java의 HashSet을 이용하여 좀 더 편하게 중복을 제거하였다.
※ HashSet 이란?
Set 인터페이스의 구현 클래스이다. 저장 순서가 유지되지 않으며 중복을 허용하지 않는다.
2. 내가 푼 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
public class boj11478 {
static String S;
static Set<String> set;
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
input();
solve(S);
System.out.println(sb.toString());
}
static void input() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
S = br.readLine();
set = new HashSet<>();
}
static void solve(String str) {
for (int i = 0; i <= str.length(); i++) {
for (int j = i + 1; j <= str.length(); j++) {
set.add(str.substring(i, j));
}
}
sb.append(set.size());
}
}
반응형
'개인 공부 > Algorithm' 카테고리의 다른 글
[Baekjoon/백준] 10974 JAVA (0) | 2022.03.12 |
---|---|
[Baekjoon/백준] 17614 JAVA (0) | 2022.03.09 |
[Baekjoon/백준] 1120 JAVA (0) | 2022.03.08 |
[Baekjoon/백준] 1476 JAVA (0) | 2022.03.06 |
[Baekjoon/백준] 4796 JAVA (0) | 2021.08.27 |