
나의 풀이
import java.util.*;
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
HashSet<String> set = new HashSet<>();
for (int i = 0; i < phone_book.length; i++) { // 1
set.add(phone_book[i]);
}
for (int i = 0; i < phone_book.length; i++) {
for (int j = 0; j < phone_book[i].length(); j++) {
if (set.contains(phone_book[i].substring(0, j))) return false; // 2
}
}
return answer;
}
}
과정
- phone_book을 HashSet에 넣어준다
- phone_book을 순회하며 phone_book[i]를 길이만큼 substring한 값이 set에 있으면 false, 아니면 true
다른 사람 풀이
class Solution {
public boolean solution(String[] phoneBook) {
for(int i=0; i<phoneBook.length-1; i++) {
for(int j=i+1; j<phoneBook.length; j++) {
if(phoneBook[i].startsWith(phoneBook[j])) {return false;}
if(phoneBook[j].startsWith(phoneBook[i])) {return false;}
}
}
return true;
}
}