import java.util.*;
public class Solution {
// 반복문 풀이
public boolean solution(String[] phone_book) {
Arrays.sort(phone_book);
for (int i = 0; i < phone_book.length - 1; i++) {
if (phone_book[i+1].startsWith(phone_book[i])) {
return false;
}
}
return true;
}
// 해시 풀이
public boolean solution(String[] phoneBook) {
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < phoneBook.length; i++)
map.put(phoneBook[i], i);
for (int i = 0; i < phoneBook.length; i++)
for (int j = 0; j < phoneBook[i].length(); j++)
if (map.containsKey(phoneBook[i].substring(0, j)))
return false;
return true;
}
}
두 방법 모두 접근에만 성공하고, 이를 코드로 옮기기만 하면 된다.
코드로 옮기기 쉬운 난이도의 문제이므로, 천천히 고민하며 손으로 써본다면 쉽게 해결 가능
startsWith()
메소드를 활용한다.containsKey()
메소드를 활용한다.