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

YUSHIN KIM·2025년 7월 27일

Algorithm

목록 보기
7/20

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

전화번호를 정렬하면 ii번째 전화번호가 i+1i+1번째 전화번호의 접두어가 되는지만 검사하면 되기 때문에 시간 복잡도가 O(N2)O(N^2)에서 O(log(N)×N)O(log(N) \times N)으로 감소한다.

Solution

import java.util.*;

class Solution {
    public boolean solution(String[] phoneBook) {
        List<String> l = new ArrayList(Arrays.asList(phoneBook));
        Collections.sort(l);
        if (l.size() == 1)
            return true;
        for (int i = 0; i < l.size() - 1; i++)
            if (l.get(i + 1).startsWith(l.get(i)))
                return false;
        return true;
    }
}

startsWith 메서드를 사용하여 ii번째 문자열이 i+1i+1번째 문자열의 접두어가 되는지를 효율적으로 검사할 수 있었다.

profile
안녕하세요

0개의 댓글