개발 블로그

[프로그래머스/Python3/Hash] 전화번호 목록 본문

IT/Programmers

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

파티에 2021. 4. 10. 00:25

1. 문제 설명(출처: programmers.co.kr/learn/courses/30/lessons/42577)

2. 문제 풀이
1) 이 문제는 굳이 hash로 풀지 않아도 되지만, hash로 분류되어 있으니 hash로 풀기 위해 빈 dict인 hamp을 생성한다.
2) phone_book의 모든 전화번호에 아래와 같은 명령을 수행한다.
  2-1) hmap에 각 전화번호를 key로 아무 value 값을 넣어준다.
3) phone_book의 모든 전화번호에 아래와 같은 명령을 수행한다.
  3-1) 모든 전화번호의 접두사 검사를 위해 빈 문자열 temp를 생성한다.
  3-2) 각 전화번호의 숫자들에 대해 아래와 같은 명령을 수행한다.
      3-2-1) temp에 현재 전화번호의 숫자를 붙인다.
      3-2-2) 만약 나 자신 이외에 temp가 hmap에 key로서 존재한다면
         3-2-2-T1) False를 반환한다.
4) 어떤 번호가 다른 번호의 접두사인 경우가 없으므로 True를 반환한다.

3. 결과 코드

def solution(phone_book):
  hmap = {}
  for cell in phone_book:
    hmap[cell] = 1
  for cell in phone_book:
    temp = ""
    for number in cell:
      temp += number
      if temp in hmap and temp != cell:
        return False
  return True