알고리즘 PS/data structure
해시 함수 - 프로그래머스 전화번호 목록
explorer999
2024. 5. 21. 17:28
<문제>
코딩테스트 연습 - 전화번호 목록 | Programmers School
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
전화번호부에 적힌 전화번호를 담은 배열이 solution 함수의 매개변수로 주어질 때,
어떤 번호가 다른 번호의 접두어인 경우 false를, 접두어가 아니면 true를 리턴하는 solution 함수.
<내 풀이>
def solution(phone_book):
phone_book_dict = {} #딕셔너리 생성
for phone_number in phone_book:
#딕셔너리에 전화번호를 Key값으로, True를 Value값으로 추가
phone_book_dict[phone_number] = True
for phone_number in phone_book:
temp = ""
for char in phone_number:
#전화번호의 숫자 하나씩 temp에 넣으면서 key값 중 일치하는 게 있는지 확인한다.
temp += char
#일치하는 키값을 찾았는데, 그게 현재 temp에 추가하고 있는 전화번호와 일치하지 않는다면 현재 전화번호는 현재 temp값을 접두어로 갖는 번호이다.
if temp in phone_book_dict and temp != phone_number:
#그런 경우가 한번이라도 보이면 False를 리턴한다.
return False
#모든 전화번호를 확인한 뒤에 접두어가 없으면 True를 리턴한다.
return True
- 문자열이 이터러블한 객체라는 것을 잊지 말고 잘 활용하자.