문제


로직
- 오름차순으로 정렬한다.
접두어가 존재한다면 오름차순으로 정렬 시에, 두 수는 무조건 인접해서 존재할 것이다.
- 두 수를 하나씩 대입해본다.
두 수를 가져와서 더 작은 수의 길이만큼 첫 번째 숫자부터 하나씩 대입해본다. 만약 모든 수가 같다면 false를 반환한다.
- 2번 과정을 모든 수에 대해서 진행하고 false가 하나도 나오지 않는다면 ture를 반환한다.
코드
import java.util.*;
class Solution {
public boolean solution(String[] phone_book) {
Arrays.sort(phone_book);
for (int i = 0; i < phone_book.length - 1; i ++) {
if (isPrefix(phone_book[i], phone_book[i+1])) {
return false;
}
}
return true;
}
private boolean isPrefix (String prefix, String word) {
for (int i = 0; i < prefix.length(); i ++) {
if (prefix.charAt(i) != word.charAt(i)) {
return false;
}
}
return true;
}
}
결과
