티스토리 뷰

내 풀이

def solution(phone_book):
    answer = True
    phone_book.sort()
    if len(phone_book) == 1:
        return answer
    else:
        while answer == True:
            for i in range(len(phone_book)-1):
                if phone_book[i] in phone_book[i+1][:len(phone_book[i])]:
                    answer = False
                    break
            break
    return answer

 

def solution(phone_book):
    answer = True
    phone_book.sort()
    if len(phone_book) == 1:
        return answer
    else:
        while answer == True:
            for i in range(len(phone_book)-1):
                if phone_book[i] in phone_book[i+1]:
                    answer = False
                    break
            break
    return answer

처음에 이렇게 했는데 ["45","43456"] 이렇게 단순 포함되는 경우도 False를 반환하기 때문에 위에처럼 시작 바꿨다

해시를 이용한 다른 풀이

def solution(phone_book):
    answer = True
    hash_map = {}
    temp = ''
    for phone_num in phone_book:
        hash_map[phone_num] = 1
    print(hash_map)

    for phone_num in phone_book:
        temp = ''
        for k in phone_num:
          temp += k
          if temp in hash_map and temp != phone_num:
              answer = False
    return answer

'알고리즘 공부 > 고득점kit' 카테고리의 다른 글

[정렬] H-Index  (0) 2021.09.22
[정렬] k번째 수  (0) 2021.09.22
[그래프] 가장 먼 노드  (0) 2021.09.21
[그래프] 순위  (0) 2021.09.21
[해시] 완주하지 못한 선수  (0) 2021.09.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함