카테고리 없음

프로그래머스 - 전화번호 목록

금마s 2021. 9. 14. 21:26

# JAVA

import java.util.HashMap;
import java.util.Map;
class Solution {
    public boolean solution(String[] phone_book) {
        boolean answer = true;
        HashMap<String, Integer> map = new HashMap<>();
        
        for(int i=0; i<phone_book.length; i++){
            map.put(phone_book[i], i);
        }
        
        for(int i=0; i<phone_book.length; i++){
            for(int j=1; j<phone_book[i].length(); j++){
                if(map.containsKey(phone_book[i].substring(0,j))){
                    answer = false;
                    return answer;
                }
            }
        }
        return answer;
    }
}

✔ 해시함수를 이용하는게 포인트

class Solution {
    public boolean solution(String[] phone_book) {
        for(int i=0; i<phone_book.length; i++){
            for(int j=i+1; j<phone_book.length; j++){
                if(phone_book[i].startsWith(phone_book[j])){
                    return false;
                }
                if(phone_book[j].startsWith(phone_book[i])){
                    return false;
                }
            }
        }
        return true;
    }
}

❓ 반복문을 사용해도 정확한 값은 나오지만 효율성이 너무 떨어진다.

728x90