본문 바로가기

알고리즘/프로그래머스

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

728x90

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

 

프로그래머스

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

programmers.co.kr

🤔 문제분석

전화번호부를 정렬을 하게되면 문자열(아스키코드) 기준으로 정렬이 되기때문에 이전의 값과 접두어를 비교해보아 같다면 접두어가 존재한다.

스트링의 정렬 순서

  • 맨 왼쪽의 문자 부터 아스키 코드 값 기준으로 정렬된다.
  • 맨 왼쪽의 값이 모두 같고, 길이가 더 긴 경우 그 다음으로 정렬된다. ( ex) ab와 a )

💻 코드

def solution(phone_book):
    # 정렬을 한뒤에
    # i과 i+1을 순차적으로 비교한다.
    phone_book.sort()
    for i in range(len(phone_book)-1):
        length = len(phone_book[i])
        if phone_book[i] == phone_book[i+1][:length]:
            print(i)
            return False
        
    return True
728x90