[문제이름] (Python)
0. 출처
1. 기록
2. 풀이
(1) 아이디어
1. 아이디어
>> 반복문 돌면서 기준이되는 폰넘버를 다른 폰넘버가 앞자리부터 가지고 있는지 확인해본다.
>> slicing 활용!
2. 시간복잡도
>>
3. 자료구조
>>
(2) 코드
# 효율성 테스트 3,4 실패
def solution(phone_book):
phone_book.sort()
for num in range(0, len(phone_book)):
for target in range(num+1, len(phone_book)):
target_num = phone_book[target]
if phone_book[num] == target_num[0:len(phone_book[num])]:
return False
return True
# startswith() 를 활용하면 이중for문없이 해결할 수 있다.
def solution(phone_book):
phone_book.sort()
for num in range(0, len(phone_book)-1):
if phone_book[num+1].startswith(phone_book[num]):
return False
return True
# startswith() 와 zip() 을 활용한 풀이
def solution(phoneBook):
phoneBook.sort()
print(phoneBook)
print(phoneBook[1:])
print(list(zip(phoneBook, phoneBook[1:])))
for p1, p2 in zip(phoneBook, phoneBook[1:]):
if p2.startswith(p1):
return False
return True
(3) 정리
(4) 참고
효율성 참고1
효율성 참고2
참고 풀이