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

TED·2024년 4월 18일
1

Javascript CodingTest

목록 보기
63/63
post-thumbnail

<오늘의 문제>

전화번호 목록

function solution(phone_book) {
    // 전화번호 목록 사전 순 정렬
    phone_book.sort();

    // 각 번호를 바로 다음 번호와 비교
    for (let i = 0; i < phone_book.length - 1; i++) {
        if (phone_book[i + 1].startsWith(phone_book[i])) {
            return false;
        }
    }
    return true;
}
  • 이 문제는 주어진 전화번호 목록에서 어떤 번호가 다른 번호의 접두어인지 확인하는 문제다.
    전화번호 목록의 길이가 최대 1,000,000이므로, 효율적인 검사 방법이 필수.
    가장 효과적인 접근 방법 중 하나는 전화번호 목록을 먼저 사전 순으로 정렬하는 것.
    이렇게 하면 접두어 관계에 있는 번호들이 서로 인접하게 된다.
    따라서 각 번호를 바로 다음 번호와만 비교하여 접두어 관계를 검사할 수 있다.

  • 접근 방법:
    1.전화번호 목록을 사전 순으로 정렬.
    2.각 번호를 바로 다음 번호와 비교하여 접두어 관계인지 확인.
    3.접두어 관계가 발견되면 즉시 false를 반환.
    4.모든 검사가 끝나면 true를 반환.

  • 이 코드는 각 번호를 그 다음 번호와만 비교하기 때문에 시간 복잡도는 O(N log N)이다(정렬 때문에 ㅡㅡ),
    하여 주어진 제한 사항 내에서 충분히 효율적이라고 생각한다.

열심히 1일 1커밋을 코테로 채운지 어언 5개월쯤 된거같다.
이력서도 계속 넣고있다.
하지만 내 깃헙의 조회수는 전혀 올라가지않는다.
1일 1커밋이든 내가 문제 풀이를 어떤식으로 하든지 관심조차 주지않는 이력서라는 의미인걸까?
점점 회의감이 든다.
컴공과에 편입까지하며 불태운 내 의지가 촛불의 위태로운 불빛마냥 흔들린다. ㅎㅎ

profile
컴맹 개발 입문자

0개의 댓글