문제링크 :https://programmers.co.kr/learn/courses/30/lessons/42577
문제설명
1 .전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어짐
2. 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return
알고리즘
1. 맨 앞 인덱스 부터 확인하는데 같은 인덱스면 생략.
2. 확인하는 전화번호의 길이( i 인덱스 ) 가 확인 할 인덱스의 전화 번호 길이 ( j 인덱스 )보다 더 길면 생략
3. 확인하는 전화번호( i 인덱스 ) 가 확인 할 인덱스의 전화 번호 ( j 인덱스 )맨 앞부분에 들어있는지 확인후 return.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
def solution(phone_book):
answer = True
for i in range(len(phone_book)):
st1 = phone_book[i]
for j in range(len(phone_book)):
st2 = phone_book[j]
if i==j : #같은 인덱스면 생략
continue
#길이가 더 길면 생략
if len(st1)>len(st2):
continue
if st1 in st2[:len(st1)]:
return False
return True
|
cs |
'파이썬 > 프로그래머스' 카테고리의 다른 글
[python] 프로그래머스 - 키패드 누르기 (0) | 2020.08.04 |
---|---|
[python] 프로그래머스 - 스킬트리 (0) | 2020.08.04 |
[python] 프로그래머스 - 베스트 앨범 (0) | 2020.08.04 |
[python] 프로그래머스 - 위장 (0) | 2020.08.04 |
[python] 프로그래머스 - 크레인 인형 뽑기 게임 (0) | 2020.07.31 |