알고리즘

[알고리즘] 프로그래머스 - 전화번호 목록 (Java)

오늘보다 더 나은 내일을 위해 2021. 2. 5. 21:37

해시 카테고리에 있는 문제를 골라 해시를 이용한 문제를 더 풀어보았다.

 

programmers.co.kr/learn/courses/30/lessons/42577

 

public boolean solution(String[] phone_book) {
        boolean answer = true;
        Map<Integer, String> h = new HashMap<>();

        for(int i=0; i<phone_book.length; i++){
            h.put(i, phone_book[i]);	// HashMap에 배열에 있는 값 넣어주기
        }
        
        for(int i=0; i<phone_book.length; i++){
            for(int j=0; j<phone_book.length; j++){
                if(i == j) continue;	// 같은 값 비교 방지
                if(h.get(i).startsWith(phone_book[j])){	// 접두사인 경우 반복 중단
                    answer = false;
                    break;   
                }
            }
        }
        return answer;
    }

 

해시가 탐색에 효과적이라고 했지만 중첩된 for문을 써서 효율성이 하나도 없는 느낌...

해시를 안써도 될거 같다.