728x90
문제의 조건인 접두어의 경우를 간과했고, startsWith를 잊고 있었다.
hash, indexOf를 활용해서 일단 다시 풀어보았다.
hash쓴게 마지막 효율성에서 살짝 더 느리다. Arrays.sort때문인듯 햇는데 둘다 사용햇엇다
왜때문인지 모르지만 걍 패스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | // 문제에서 요구하는 Hash를 활용하여 만든 케이스 public boolean solution2(String[] phone_book) { boolean answer = true; HashSet<String> hs = new HashSet<>(); Arrays.sort(phone_book, (a, b) -> Integer.compare(a.length(), b.length())); for (String pb : phone_book) { // System.out.println(pb); hs.add(pb); } for (String pb : phone_book) { hs.remove(pb); for (String hsString : hs) { if (hsString.indexOf(pb) == 0) return false; } } return answer; } // 접두어라는 문제의 조건을 간과햇다.. // startsWith라는 메소드를 잊고 있었다.. public boolean solution1(String[] phone_book) { boolean answer = true; HashSet<String> hs = new HashSet<>(); Arrays.sort(phone_book, (a, b) -> Integer.compare(a.length(), b.length())); int leng = phone_book.length; for (int i = 0; i < leng; i++) { for (int j = i + 1; j < leng; j++) { if (phone_book[j].startsWith(phone_book[i])) return false; } } return answer; } | cs |
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 베스트앨범 (해시) (0) | 2019.12.03 |
---|---|
프로그래머스 - 위장 (해시) (0) | 2019.11.30 |
프로그래머스 - 완주하지 못한 선수 (해시) (0) | 2019.11.30 |
프로그래머스 - 징검다리 (이분탐색) (0) | 2019.11.29 |
프로그래머스 - 입국심사 (이분탐색) (0) | 2019.11.29 |