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

2023. 11. 28. 22:24·Coding Test/프로그래머스

문제

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

 

프로그래머스

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

programmers.co.kr


코드

def solution(phone_book):
	phone_book.sort() # 전화번호부 정렬
    
    for i in range(len(phone_book)-1): # 정렬된 전화번호부에서 인접한 번호 비교
        if phone_book[i+1].startswith(phone_book[i]): # 현재 번호가 인접한 번호의 접두사인지 확인
            return False # 접두사가 맞으면 False 반환  
            
    return True # 접두사 관계 없으면 True 반환

해설

  • 문자열 비교 특성 때문에 정렬을 통해 비슷한 문자열들이 서로 인접하도록 하면 효율적으로 탐색할 수 있다.
    • => O(n log n)
  • 정렬하지 않는다면 모든 번호 쌍을 비교해야하기 때문에 효율적이지 않다.
    • => O(n^2)

'Coding Test > 프로그래머스' 카테고리의 다른 글

[프로그래머스(Python)] 햄버거 만들기  (0) 2023.12.13
[프로그래머스(Python)] 등차수열의 특정한 항만 더하기  (0) 2023.12.13
[프로그래머스(Python)] 문자열 나누기  (0) 2023.11.28
[프로그래머스(Python)] 완주하지 못한 선수  (0) 2023.11.28
'Coding Test/프로그래머스' 카테고리의 다른 글
  • [프로그래머스(Python)] 햄버거 만들기
  • [프로그래머스(Python)] 등차수열의 특정한 항만 더하기
  • [프로그래머스(Python)] 문자열 나누기
  • [프로그래머스(Python)] 완주하지 못한 선수
6eom9eun
6eom9eun
  • 6eom9eun
    개발 공간
    6eom9eun
  • 전체
    오늘
    어제
    • 전체보기 (33)
      • Front (7)
        • flutter (2)
        • react (5)
      • Back (4)
        • node.js (2)
        • django (4)
      • AI (2)
      • KT Aivle (1)
      • Coding Test (13)
        • 프로그래머스 (5)
        • 백준 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 설정
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    OpenAI
    PYTHON
    poetry
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
6eom9eun
[프로그래머스(Python)] 전화번호 목록
상단으로

티스토리툴바