[Programmers] : 해시 > 전화번호 목록 > JAVA

 

🔗 문제 

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

 

코딩테스트 연습 - 전화번호 목록

전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조

programmers.co.kr

 

📝 풀이

접두사(接頭辭,prefix)는 어떤 단어(어근)의 앞에 붙어 뜻을 첨가하여 하나의 다른 단어를 이루는 말을 이른다.

  • 예 : ‘맨주먹·덧버선·풋사과·군소리’ 등에서 ‘맨―’·‘덧―', '풋-', '군-' 따위

즉, 119는 11 9552 4421 중에서 끝자리인 1을 제외한 119552442의 접두어 이므로 false이다.

 

💻 코드

public static boolean solution(String[] phone_book){
        boolean answer = false;
        System.out.println(Arrays.asList(phone_book));

        HashSet<String> set = new HashSet<>();
        set.addAll(Arrays.asList(phone_book));

        for(String phone : phone_book){
            for(int i=1; i < phone.length(); i++) {

                if(set.contains(phone.substring(0,i))){
                    return false;
                }
            }
        }
        return true;
    }

댓글

Designed by JB FACTORY