티스토리 뷰

반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

# 힌트

입력 크기가 100만이라 2중 반복문을 통해서 하나하나 비교하면 효율성 테스트에서 걸리게 된다.

모든 요소를 전부 비교할 필요가 없다. phone_book 배열을 사전순으로 정렬하면, 인접한 요소끼리만 비교하는 것으로 충분하다.

왜냐하면 인접한 요소를 비교했는데 접두사가 아니면, 사전순으로 정렬된 후의 요소들도 당연히 아니기 때문이다.

 

 

해답 보기

더보기
public static boolean solution(String[] phone_book) {
    Arrays.sort(phone_book);
    String cur;
    String right = "";
    for (int i = 0; i < phone_book.length - 1; i++) {
        cur = phone_book[i];
        right = phone_book[i + 1];
        if (right.startsWith(cur)) return false;
    }
    return true;
}

 

반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크