새소식

반응형
Algotithms

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

  • -
728x90
반응형

문제

  • N개 전화번호들 중 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하기
    • 1 <= N <= 1,000,000 
    • 접두어란,  한 번호 전체가 다른 번호 앞에 그대로 나오는 경우
    • 구조대 : 119
    • 지영석 : 11 9552 4421

 

풀이

  • 각 번호에 대해서 모든 전화번호가 접두어인지 확인한다면 시간 초과
    • 시간 복잡도 : $O(NlogN)$
  • 접두어인 번호가 있는지 없는지만 확인하면 되므로 전화번호를 정렬한 후, 자기 뒷 번호만 확인하면 된다.

 

""" 
- 접두어인 번호가 있으면 false
"""
def solution(phone_book):
    phone_book.sort()
    
    for i in range(len(phone_book)-1):
        if phone_book[i] == phone_book[i+1][:len(phone_book[i])]:
            return False
    
    return True

 

References

반응형

'Algotithms' 카테고리의 다른 글

[프로그래머스] 베스트 앨범  (0) 2023.04.26
[프로그래머스] 의상  (0) 2023.04.26
[프로그래머스] 완주하지 못한 선수  (0) 2023.04.26
[프로그래머스] 폰켓몬  (0) 2023.04.26
[백준] 1248 Guess 🌟  (0) 2023.04.26
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.