1. 문제
2. 풀이 과정
방법 1) 정렬해서 인접한 요소만 비교하기
*str.starts.with("접두어") : 특정 문자열로 시작하는지 확인하는 함수
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
방법 2) 해쉬 맵 사용하기
리스트에서 특정 요소가 있는지 확인하는 것보다 set, dict에서 확인하는 것이 더 빠르다.
number in phone_book으로 해도 답은 나오지만, number in hash_map을 사용하는 이유이다.
def solution(phone_book):
hash_map = {}
for i in phone_book:
hash_map[i] = 1
for phone_number in phone_book:
number = ""
for num in phone_number:
number += num
if number in hash_map and number != phone_number:
return False
return True
'코딩문제풀이 > 프로그래머스' 카테고리의 다른 글
[Python] 프린터 (0) | 2021.08.25 |
---|---|
[Python] 기능 개발 (0) | 2021.08.24 |
[Python] 위장 (0) | 2021.08.24 |
[Python] K번째 수 (0) | 2021.08.23 |
[Python] 완주하지 못한 선수 (0) | 2021.08.23 |