https://programmers.co.kr/learn/courses/30/lessons/42577
정규식 이용, 모든 경우 확인
문제설명
전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다.
전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.
구조대 : 119
박준영 : 97 674 223
지영석 : 11 9552 4421
전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요.
입출력 예
phone_book return
[119, 97674223, 1195524421] false
[123,456,789] true
[12,123,1235,567,88] false
솔루션
정규식을 이용하여 접두어로 쓰이는 번호가 있는지 모두 확인한다.
코드
# 파이썬
import re
def solution(phone_book):
for pre in phone_book:
for number in phone_book:
if re.search("^"+pre+".+",number):
return False
return True
팁
뒤에 문자가 붙는경우(.+)를 추가해주어 예외처리를 해준다.