문제
접근
전화번호를 정렬한 후 시작하면 생각보다 간단한 문제가 된다.
현재 번호가 바로 다음 번호의 접두사인지만 확인하면 되는 문제이다.
- 바로 다음 번호가 접두사가 아니라면, 나머지 번호들도 접두사가 아니다.
- 뒷 번호가 앞번호의 접두사가 되는 경우가 존재하지 않는다.
- 문자의 길이를 체크할 필요가 없다.
- 다음 번호의 접두사라면, 다음 번호보다 짧거나 같다.
- 다음 번호의 접두사가 아니라면, 현재 번호의 끝까지 확인하기 전에 다른 숫자가 나오게 된다.
코드
- 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
def solution(phone_book):
answer = True
phone_book.sort()
for i in range(len(phone_book)-1):
flag = True
for j in range(len(phone_book[i])):
if phone_book[i][j] != phone_book[i+1][j]:
flag = False
break
if flag == True:
answer=False
break
return answer