[프로그래머스 lv 2] 전화번호 목록(해시)

2025. 8. 19. 12:57·✨ 공부 기록/알고리즘 & 코딩테스트

어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 리턴한다. 일일히 이 값들을 비교하기에는 너무 많은 연산이 필요할 것 같다. 같은 값이 중복되어 들어있지 않다고 하니, 같은 길이를 가지는건 일단 다 제거를 해본다. <- 이렇게 하면 숫자들을 비교를 하지 못하게 되는 문제가 발생한다.

 

이중 for문이면 비효율적이지 않을까... 생각했는데 그냥 이중 for문을 사용했다.

def solution(phone_book):
    answer = True    
    phone_book = sorted(phone_book, key=len)
    for i in range(len(phone_book)):
        for j in range(i+1,len(phone_book)):
            if phone_book[j].startswith(phone_book[i]):
                return False
    return answer

 

물론 이러면 정확성은 다 맞지만 효율성에서는 2개 정도 통과가 안된다.

 

# 두 번째 시도

def solution(phone_book):
    answer = True    
    phone_book = sorted(phone_book)
    for i in range(len(phone_book)-1):
        if phone_book[i+1].startswith(phone_book[i]):
            return False
    return answer

 

'정렬했을 때 접두사 관계는 반드시 인접한 두 원소에서만 나타난다' 라는 말이 맞을때 이 방법이 가능한 것 같다.

 

다른 분 풀이를 보니 dictionary를 사용해서 각 단어를 for문 돌리고 부분 문자열이에 속하는게 dictionary의 key에 있느냐로 두고 찾던데 그것도 흥미로워보였다.

저작자표시 비영리 변경금지 (새창열림)

'✨ 공부 기록 > 알고리즘 & 코딩테스트' 카테고리의 다른 글

[프로그래머스 lv 1] 폰켓몬(해시)  (0) 2025.08.18
[프로그래머스 lv 0] 다항식 더하기 (코딩테스트 입문)_replace 사용  (0) 2025.03.06
[프로그래머스 lv 0] 최빈값 구하기 (코딩테스트 입문)  (0) 2025.03.06
[프로그래머스 lv 0] 다음에 올 숫자 (코딩테스트 입문)  (0) 2025.03.06
[프로그래머스 lv 0] 연속된 수의 합 (코딩테스트 입문) 2️⃣  (0) 2025.03.05
'✨ 공부 기록/알고리즘 & 코딩테스트' 카테고리의 다른 글
  • [프로그래머스 lv 1] 폰켓몬(해시)
  • [프로그래머스 lv 0] 다항식 더하기 (코딩테스트 입문)_replace 사용
  • [프로그래머스 lv 0] 최빈값 구하기 (코딩테스트 입문)
  • [프로그래머스 lv 0] 다음에 올 숫자 (코딩테스트 입문)
LaonMoon
LaonMoon
  • LaonMoon
    스토리생성연구블로그
    LaonMoon
  • 전체
    오늘
    어제
  • 공지사항

    • About me👋
    • 분류 전체보기
      • ✨ Story Generation
        • 논문 리뷰
        • 연구 관련 생각
      • ✨ 자연어 처리
        • (짧은) 논문 리뷰
        • HuggingFace
        • Transformer 구현
      • ✨ 공부 기록
        • 알고리즘 & 코딩테스트
        • 딥러닝
        • 웹 개발
        • Flutter
        • Flask
        • Android
        • NLP
        • Docker&k8s
        • Database
        • [24-1] 데이터 분석
        • [24-1] RL
      • ✨ 포트폴리오
        • 2020
        • 2021
        • 2022
        • 2023
        • 2024
        • 2025
      • 프로그래밍
        • 오류(Error)정리
        • 시행착오
        • 리눅스 명령어
        • 공부내용 정리
      • AI Playground
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
LaonMoon
[프로그래머스 lv 2] 전화번호 목록(해시)
상단으로

티스토리툴바