import java.util.*;
class Solution {
public boolean solution(String[] phone_book) {
HashSet<String> phoneBook = new HashSet<>();
for(String phoneNum : phone_book) {
phoneBook.add(phoneNum);
}
for(String phoneNum : phone_book) {
if(phoneNum.length() > 1) {
StringBuilder subNum = new StringBuilder();
for(int i=0; i<phoneNum.length()-1; i++) {
char cur = phoneNum.charAt(i);
subNum.append(cur);
if(phoneBook.contains(subNum.toString())) return false;
}
}
}
return true;
}
}
전화번호부에서 어떤 번호 A가 특정 번호 B를 접두어로서 포함하고 있으면 false
그렇지 않다면 true를 반환하는 문제이다.
먼저 모든 phoneNum들을 HashSet에 추가해줬다.
그런 다음 길이가 2이상인 전화번호에 대하여
앞 문자부터 차례대로 하나씩 subNum에 넣어줘서
subNum이 HashSet에 존재하는지 체크함으로써 접두어 존재여부를 체크 할 수 있었다.