티스토리 뷰

728x90

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

 

코딩테스트 연습 - 전화번호 목록

전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조

programmers.co.kr

 

  • 해설 :

전화번호 목록들이 담겨있는 배열이 주어질 때, 이 배열의 원소들 중 다른 원소의 접두어가 되는 원소가 있는지 찾는 문제이다.

 

 

 

  • 풀이 :

모든 전화번호를 dictionary에 key값으로 만들어주고 phone_book에 있는 모든 번호들을 첫 자리부터 끝까지 확인하며 Dictionary에 key 값으로 존재하는지 확인하면 된다. 자기 자신일 경우가 반드시 존재하므로 같은 경우는 제외한다.

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
def solution(phone_book):
    dic = dict()
    for i in phone_book:
        dic[i] = 1
    for i in phone_book:
        s = ''
        for j in i:
            s += j
            if s in dic and s != i:
                return False
    return True
cs
320x100
댓글
© 2022 WonSeok, All rights reserved