알고리즘/백준알고리즘
[1141/Java] 접두사
HoSeongYu
2021. 12. 31. 15:32
문제

입력 및 출력

풀이
import java.util.*;
class Main {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
// 배열의 크기
int N = scan.nextInt();
scan.nextLine();
// 배열 입력 값
String[] array = new String[N];
for(int i=0; i<N; i++){
array[i] = scan.nextLine();
}
// 입력값 array를 길이 기준으로 정렬하는 Sort 메소드 호출
selectSort(array, N);
// 정렬된 array를 순서대로 접두사가 있는지 비교 Check 메소드 호출
List<String> list = check(array, N);
// 결과값
int result = list.size();
System.out.println(result);
}
// 정렬 메소드
public static void selectSort(String[] array, int N){
for(int i=0; i<N; i++){
for(int j=1; j<N-i; j++){
if(array[j-1].length() > array[j].length()){
String temp = array[j-1];
array[j-1] = array[j];
array[j] = temp;
}
}
}
}
// 접두사 check 후 접두어x 집합 list에 담기
public static List<String> check(String[] array, int N){
// 접두사X 집합인 부분집합
List<String> list = new ArrayList<>();
// 접두어x 집합일 경우 list에 추가
for(int i=0; i<N; i++){
Boolean result1 = true;
for(int j=i+1; j<N; j++ ){
if(array[j].indexOf(array[i]) == 0){
result1 = false;
}
}
if(result1){
list.add(array[i]);
}
}
return list;
}
}
결과 및 해결방안
[결과]
