<문제>
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 |