diff --git "a/9\354\236\245/\354\240\204\355\231\224\353\262\210\355\230\270\353\252\251\353\241\235.java" "b/9\354\236\245/\354\240\204\355\231\224\353\262\210\355\230\270\353\252\251\353\241\235.java" index 22fc385..18cc76b 100644 --- "a/9\354\236\245/\354\240\204\355\231\224\353\262\210\355\230\270\353\252\251\353\241\235.java" +++ "b/9\354\236\245/\354\240\204\355\231\224\353\262\210\355\230\270\353\252\251\353\241\235.java" @@ -4,20 +4,24 @@ public class Solution { public boolean solution(String[] phoneBook) { - Set prefixes = new HashSet<>(); + Set phoneNumbers = new HashSet<>(); + + phoneBook = Arrays.stream(phoneBook) + .sorted((p1, p2) -> { + return p1.length() - p2.length(); + }) + .toArray(String[]::new); for (String phone : phoneBook) { for (int end = 1; end < phone.length(); end++) { - prefixes.add(phone.substring(0, end)); - } - } + String prefix = phone.substring(0, end); - for (String phone : phoneBook) { - if (prefixes.contains(phone)) { - return false; + if(phoneNumbers.contains(prefix)) return false; } + + phoneNumbers.add(phone); } return true; } -} +} \ No newline at end of file