

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() 메소드를 활용한다.