coding test - python/Programmers

Programmers / [복습] 전화번호 목록 - 해시 / Python 파이썬

sillon 2025. 4. 3. 15:46
728x90
반응형

 

*문제 출처는 프로그래머스에 있습니다.

문제 제목: 전화번호 목록

문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/42577

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 


나의 풀이

def solution(phone_book):
    hash_map = {}
    for i in phone_book:
        hash_map[i] = 1 # 전화번호를 모두 해시로 저장
        
    # 접두어가 hash map에 존재하는지 찾는다.
    for number in phone_book:
        head = ''
        for j in number:
            head += j
            print(head)
            if head in hash_map and head != number:
                return False
    return True

 

 

너무 성급하게 슬라이딩 윈도우 처럼 처리하지말고

해시로 일단 번호들을 저장해줌

 

그리고 각각  number을 for문 돌면서 헤드를 만들어보고, (그 헤드가 해시맵에 있고 헤시맵의 숫자로 해당되지 않는다면 )

헤드가 될만한게 해시안에 있는지 확인

728x90
반응형