본문 바로가기
Algorithm/Programmers Java

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

by 제우제우 2024. 11. 12.

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

 

프로그래머스

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

programmers.co.kr

코딩테스트 연습 > 해시 > 전화번호 목록

 

난이도: LEVEL2

알고리즘 유형: 해시 

정답 코드1(해시)

import java.util.*;
class Solution {
    public boolean solution(String[] phone_book) {
        Set<String> phone = new HashSet<>();
        for(String next : phone_book){
            phone.add(next);
        }
        StringBuilder sb = new StringBuilder();
        for(String next : phone_book){
            char [] arr = next.toCharArray();
            for(int i = 0; i < arr.length - 1; i++){
                sb.append(arr[i]);
                if(phone.contains(sb.toString())) return false;
            }
            sb.setLength(0);
        }
        return true;
    }
}

정답 코드2 (정렬)

import java.util.*;
class Solution {
    public boolean solution(String[] phone_book) {
        Arrays.sort(phone_book);
        for(int i = 0; i < phone_book.length - 1; i++){
           if(phone_book[i+1].startsWith(phone_book[i])) return false; 
        }
        return true;
    }
}