프로그래머스 - 전화번호 목록 / Level 2 / Java

Young Hun Park·2023년 2월 14일
0

문제 📋

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

풀이 📝

import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
        
        HashSet<String> phoneBook = new HashSet<>();
        
        for(String phoneNum : phone_book) {
            phoneBook.add(phoneNum);
        }
                
        for(String phoneNum : phone_book) {
            if(phoneNum.length() > 1) {
                StringBuilder subNum = new StringBuilder();
                
                for(int i=0; i<phoneNum.length()-1; i++) {
                    char cur = phoneNum.charAt(i);
                    subNum.append(cur);
                    
                    if(phoneBook.contains(subNum.toString())) return false;
                }
            }
        }
        return true;
    }
}

전화번호부에서 어떤 번호 A가 특정 번호 B를 접두어로서 포함하고 있으면 false
그렇지 않다면 true를 반환하는 문제이다.

먼저 모든 phoneNum들을 HashSet에 추가해줬다.
그런 다음 길이가 2이상인 전화번호에 대하여
앞 문자부터 차례대로 하나씩 subNum에 넣어줘서
subNum이 HashSet에 존재하는지 체크함으로써 접두어 존재여부를 체크 할 수 있었다.

profile
개발자에게 유용한 지식

0개의 댓글