카테고리 없음

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

잔디🌿 2025. 5. 15. 16:50

https://school.programmers.co.kr/learn/courses/30/lessons/42577

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

위와 같이 전화번호 목록이 주어지고, 특정 요소가 특정 요소의 접두사(114와 114545와 같이)가 되는 경우가 있는지를 조사하고

있으면 false를 없으면 true를 반환한다.

 

처음에 이 문제가 해시에 들어가있어서 대체 왜 이게 해시문제이지 했는데

해시셋 안에 특정 요소가 있는지를 검사하기 위해서 해시를 쓰는 것이었다.

 

import java.io.*;
import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
        Set<String> set = new HashSet<>();
        
        for(String now : phone_book){
            set.add(now);
        }
        
        for(int i = 0;i<phone_book.length;i++){
            for(int j = 1;j<phone_book[i].length();j++){
                if(set.contains(phone_book[i].substring(0,j))){
                    return false;
                }
            }
        }
        return true;
    }
}

substring을 사용하여 각각의 배열을 돌면서 해당 substring과 일치하는 요소가 있는지를 확인하는 방식을 사용하였다.