public static boolean solution(String[] phone_book){
for (int i = 0; i < phone_book.length; i ++){
String target = phone_book[i];
int target_length = target.length();
for (int j = i + 1; j < phone_book.length; j++){
if (target_length < phone_book[j].length()) {
if (target.equals(phone_book[j].substring(0, target_length)) == true) {
return false;
}
}
else if (target_length > phone_book[j].length()){
if (phone_book[j].equals(target.substring(0,phone_book[j].length())) == true){
return false;
}
}
}
}
return true;
}
문제에서 접두사라고 하였으나 풀어서 보면
앞에 글자를 비교하라는 문제 였다.
그래서 배열의 첫번째 문자열을 타겟으로 잡고 길이를 변수로 저장하여
다음 문자열이 더 크면 큰 문자열을 자르고 비교 하고
타겟의 길이가 더 크면 타겟을 잘라서 비교하는 알고리즘을 사용 하였다.
시간복잡도는 o(n^2)로 데이터 양이 늘어나면 최악
'JAVA' 카테고리의 다른 글
자바상식 (0) | 2023.12.21 |
---|---|
자바로 만든 스윙 기반의 GUI 프로그램 (1) | 2020.09.13 |
피보나치 수열 함수 코딩, 알고리즘, Fibonacci Algorithm 코드 (0) | 2020.02.25 |
팩토리얼 함수 코딩, 알고리즘 ,Factorial Algorithm (재귀함수) (0) | 2020.02.24 |
팩토리얼 함수 코딩, 알고리즘 , Factorial Algorithm (반복함수) (5) | 2020.02.24 |
댓글