알고리즘

[프로그래머스 lv 2] 전화번호 목록.py

파뱁 2022. 3. 17. 22:24
728x90

<문제 설명>

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

 

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

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

programmers.co.kr

전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인 하면 된다.

 

입출력 예제는 다음과 같다.

phone_book return
["119", "97674223", "1195524421"] false
["123","456","789"] true
["12","123","1235","567","88"] false

 

<문제 풀이 아이디어>

딕셔너리를 이용하면 될 것이라고 생각해서 어떻게 활용할까 하다가

전화번호를 키에 넣고 value에 인덱스를 부여해서, 하나의 키가 다른 키에 존재 하는 존재 하는 지를 확인하고자 했다.

 

<문제 풀이 코드>

def solution(phone_book):
    answer = True
    dic = {}
    #딕셔너리 키에 값(전화번호)를 저장하고 value에 인덱스를 부여
    for i in range(len(phone_book)):
        dic[phone_book[i]] = i
    for i in range(len(phone_book)):
        for j in range(1,len(phone_book[i])):
            if(phone_book[i][0:j] in dic):
                answer = False
    return answer

채점 결과

728x90
반응형