오구의코딩모험

[Python] 전화번호 목록 본문

프로그래밍 공부/프로그래머스

[Python] 전화번호 목록

오구.cpp 2022. 12. 23. 18:21
반응형

[코딩테스트 고득점KIT - 해시]

 

 

어떤 번호가 다른 번호의 접두어인 경우, False

ex) "119" 는 "1195524421"의 접두어, return False

 

그렇지 않은 경우, True

 

phone_book 리스트 값을 오름차순으로 정렬 해준다면,

유사한 숫자들끼리 배치가 될 것이다.

ex) ["119", "97674223", "1195524421"] → ["119", "1195524421", "97674223"]

 

index가 낮은 값은 바로 뒤인 index+1 값과 유사하지만 실제 수치는 낮다.

그러므로 서로 맞닿는 index 값들만 비교를 해준다.

ex) 1) phone_book[0], phone_book[1] 비교 

2) phone_book[1], phone_book[2] 비교 

 

반복문으로 비교를 해주며, startswith 함수를 이용하여 접두어인지 판별.

 

끝.

def solution(phone_book):

	# 오름차순 정렬
    phone_book = sorted(phone_book)

    for index in range(1,len(phone_book)):
    	# startswith -> 문자열 앞 비교
        if phone_book[index].startswith(phone_book[index-1]):
            return False

    return True
반응형

'프로그래밍 공부 > 프로그래머스' 카테고리의 다른 글

[Python] 같은 숫자는 싫어  (0) 2022.12.24
[Python] 위장  (0) 2022.12.23
[Python] 베스트앨범  (0) 2022.12.22
[Python] 폰켓몬  (0) 2022.12.14
[Python] 완주하지 못한 선수  (0) 2022.12.14
Comments