본문 바로가기
Beakjoon&프로그래머스/Java

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

by 현장 2026. 1. 3.

-Code

import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
        // 정렬을 하게 되면 아스키 코드와 길이를 기준으로 정렬
        Arrays.sort(phone_book);
        // 이전 원소랑만 비교하는 이유
        // 정렬시 이전 원소가 접두사인 경우는 붙어있기 때문에
        for (int i = 1; i < phone_book.length; i++) {
            if (phone_book[i].startsWith(phone_book[i - 1])) {
                return false;
            }
        }
        return true;
    }
}

처음에는 정렬 후 첫 원소로 다 비교하려 했습니다. 하지만 그러면 다음과 같은 배열이 나올 때 실패하게 되므로 이전 원소랑만 비교해야 합니다.

[12, 13, 14, 145, 155] ▶️ 14가 접두사로 사용된 원소가 존재하는데 첫 원소를 기준으로 검사하면 틀리게 됩니다.