-
[프로그래머스 / Python] 전화번호 목록 | 초코더알고리즘/프로그래머스 2020. 8. 19. 17:33
https://programmers.co.kr/learn/courses/30/lessons/42577
문제
전화번호부가 주어지면 한 번호가 다른 번호의 접두어가 있는지 확인하고 있으면 False
없으면 True를 출력하는 문제.
접근법
1. 2중 for문을 써서 전화번호부 맨앞의 요소부터 서로서로 비교해준다.
1-1. 만약 비교하려는 전화번호가 다음 전화번호보다 길이가 짧을경우
if 비교하려는 전화번호 == 다음전화번호[0:len(비교하려는전화번호)]:
False
1-2. 만약 비교하려는 전화번호가 다음 전화번호보다 길이가 긴경우
if 비교하려는 전화번호[0:len(다음전화번호)] == 다음전화번호:
True
전체코드
def solution(phone_book): for i in range(len(phone_book)-1): for j in range(i+1,len(phone_book)): if len(phone_book[i])<=len(phone_book[j]): if phone_book[i]==phone_book[j][:len(phone_book[i])]: return False else: if phone_book[i][:len(phone_book[j])]==phone_book[j]: return False return True print(solution(['119','123','333']))
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / Python] 다리를 지나는 트럭 | 초코더 (0) 2020.08.21 [프로그래머스 / Python] 위장 | 초코더 (0) 2020.08.21 [프로그래머스 / Python] 기능개발 | 초코더 (0) 2020.08.18 [프로그래머스 / Python] 주식가격 | 초코더 (0) 2020.08.18 [프로그래머스 / Python] 올바른 괄호 | 초코더 (0) 2020.08.18