algorithm_programmers : 전화번호 목록

박민우·2022년 1월 27일
0

algorithm

목록 보기
2/3


def solution(phone_book):
    answer = True
    phone_book.sort()
    for i in range(len(phone_book)-1):
    	next_num = phone_book[i+1]
        if phone_book[i] == next_num[:len(phone_book[i])]:
        	return False
    return answer
  1. 전화번호부에 적힌 전화번호를 정렬한다.
  2. 앞에 있는 전화번호가 뒤에 있는 전화번호의 접두어인지 확인한다.

단순하게 정렬 후 앞의 것과 비교하면 오류가 날 것이다. (13번 테스트 케이스에서 막힌다)
이유는, 324356 의 접두어는 3,32,324,...가 되는데 56의 경우에도 저 조건문을 통과하기 때문이다.

단순한 정렬에서, 다음 전화번호의 길이를 조정해서 비교해주면 ([:len(beforePhone)]) 통과할 수 있다.

profile
KingdomOfGod newPerson = new KingdomOfGod();

0개의 댓글

Powered by GraphCDN, the GraphQL CDN