본문 바로가기
코딩테스트

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

by 박매트 2024. 1. 24.

 

내 풀이.. (틀림)

def solution(phone_book):
    phone_book.sort()
    prefix = phone_book[0]
    p_len = len(prefix)
    
    dic = []
     
    
    for i in range(1, len(phone_book)):
        if phone_book[i][:p_len] == prefix:
            return False
    
    
    return True

 

난 단순히 접두사,,가 맨 첫번째 오는 문자라고 생각했다.

접두사 길이가 같은 경우도 있고, 몇 몇 에러가 존재했다 ... ㅜ

 

 

다른 사람 풀이

def solution(phone_book):
    answer = True
    hash_map = {}
    for phone_number in phone_book:
        hash_map[phone_number] = 1
    for phone_number in phone_book:
        temp = ""
        for number in phone_number:
            temp += number
            if temp in hash_map and temp != phone_number:
                answer = False
    return answer

 

해시를 사용해서 푼 정석적인 풀이...

너무 어렵다 . . .

for a in 문자열, 이렇게하면 a가 문자 하나씩 쪼개지는구나...

그걸 가지고 문자를 저렇게 풀다니..충격적이다....