[프로그래머스 / Python] 전화번호 목록

KYUNG HWAN·2021년 8월 13일
0

Algorithm

목록 보기
5/18
post-thumbnail
post-custom-banner

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

처음에 접근했던 방식은 startswith() 함수를 사용해서 접두어가 존재하는지 판별하려고 했는데 다른 테스트 케이스에서 걸려서 결국은 틀림...

결국, 딕셔너리 방식을 사용하여서 문제를 풀긴 했지만 다시 해시 공부를 해야겠다는 생각이 들었다.

코드

처음 풀었던 코드

def solution(phone_book):

    # 접두어를 찾기 위해 오름차순으로 정렬함
    phone_book = sorted(phone_book)

    # zip()함수로 
    for x, y in zip(phone_book, phone_book[1:]):
        # 접두어인지 확인
        if y.startswith(x):
            return False

        return True

딕셔너리를 사용한 코드

def solution(phone_book):
   answer = True
   hash_map = {}

   for number in phone_book:
       hash_map[number] = 1

   for number in phone_book:
       temp = ""
       for num in number:
           temp += num
           if temp in hash_map and temp != number:
               answer = False
   return answer
profile
내가 그린 기린 그림
post-custom-banner

0개의 댓글