https://school.programmers.co.kr/learn/courses/30/lessons/42577
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
1. sort함수, loop
def solution(phone_book):
phone_book.sort()
for i in range(len(phone_book)-1):
if(phone_book[i+1].startswith(phone_book[i])):
return False
return True
string1.startswith(string2)
-> string1이 string2로 시작되는지(string2가 string1의 접두어인지)
2. hash 함수 사용
# case2 해쉬함수 사용
def solution(phone_book):
# 1. hash map 만들기
hash_map = {}
for num in phone_book:
hash_map[num] = 1
# 2. 접두어가 hash map에 존재하는지 찾는다
for num in phone_book:
prefix = ""
for n in num:
prefix += n
# 3. 접두어를 찾아야 한다(기존 번호와 같은 경우 제외)
if prefix in hash_map and prefix != num:
return False
return True
- hashmap
key - value 쌍 관리하는 클래스
key : num
value: 1
3. 참고
https://coding-grandpa.tistory.com/86
[프로그래머스] 전화번호 목록 문제 풀이(해시 Lv. 2) - 파이썬 Python
0. 동일 유형 문제 [프로그래머스] 완주하지 못한 선수 (해시 Lv. 1) [프로그래머스] 전화번호 목록 (해시 Lv. 2) [프로그래머스] 위장 (해시 Lv. 2) [프로그래머스] 베스트 앨범 (해시 Lv. 3) Youtube 영상으
coding-grandpa.tistory.com