<문제>

https://school.programmers.co.kr/learn/courses/30/lessons/42577

 

프로그래머스

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

programmers.co.kr

 

<풀이>

def solution(phone_book):
    phone_book_dict = {value: True for value in phone_book}
    
    for number in phone_book:
        for i in range(1, len(number)+1):
            prefix = number[0:i]
            if prefix in phone_book_dict and prefix != number:
                return False
    
    return True

 

- 2차 배열 순회로는 효율성에서 실패함 (백만 x 백만, n^2)

- 2차 배열이지만 요소의 length만큼만 돌면 되니까 문제 조건에 따라 백만 x 20 임

- 해시 조회도 사용 O(1)

- 해시의 값은 필요없음 (아무거나 해도 됨)

- 요소의 숫자를 하나씩 더해가면서 해시테이블의 키에 조회가 되는지 확인

'TIL > [파이썬] 1일 1코테' 카테고리의 다른 글

Hashing_백준15829  (0) 2025.01.22
할리갈리_백준27160  (0) 2025.01.20
세로읽기_백준10798  (0) 2025.01.18
뜨거운 붕어빵_백준11945  (0) 2025.01.16
문자열 반복_백준2675  (1) 2025.01.16

+ Recent posts