프로그래머스 - 해시

# 전화번호 목록 (Level2)

- 해시 정석대로 풀기

def solution(phone_book):
    hash = {}
    for i in phone_book: # key값으로 전화번호 등록
        hash[i] = 0
    
    for i in phone_book:
        temp = ""
        for w in i:
            temp += w
            if temp in hash and temp != i: 
                # 자기 자신이 아니고 key값에 속해있으면
                return False
    return True

 

+ (GOOD) 풀이

  • Point. 정렬하면 접두어끼리 붙어있음
  • startswith() : 접두어 찾는 함수 (갓이썬,,,)
def solution(phone_book):
    phone_book.sort() # 접두어 붙어있음
    for a, b in zip(phone_book, phone_book[1:]):
        if b.startswith(a): return False 
    return True

 

반응형

+ Recent posts