코딩문제풀이/프로그래머스

[Python] 전화번호 목록

코딩하는 포메라니안 2021. 8. 24. 01:30

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