<1차시도>
테스트 케이스 3개중 2개만 통과
import numpy as np
def solution(phone_book):
answer = []
phone_book = np.array(phone_book)
check1 = phone_book[1][0:len(phone_book[1])+1]
check2 = phone_book[2][0:len(phone_book[2])+1]
if check1 == phone_book[1] and check2 == phone_book[2]:
answer = False
elif check1 == phoen_book[1] and check2 != phone_book[2]:
answer = False
elif check1 != phone_book[1] and check2 == phone_book[2]:
answer = False
elif check1 != phone_book[1] and check2 != phone_book[2]:
answer = True
return answer
<결과>
문제점: 우선 phone_book에 들어오는 숫자열의 개수가 3개가 아님... 그 이상일 수 도있다.
<2차시도>
다른 사람 코드를 보고 작성했다
def solution(phone_book):
phone_book.sort()
answer = True
for i in range(len(phone_book)-1):
if phone_book[i] == phone_book[i+1][0:len(phone_book[i])]:
answer = False
break
return answer
sort로 정리하면 같은 문자열을 갖고 있는 것끼리 정렬된다 어차피 같은 것이 하나만 있어도 false이므로 i+1만 검사하면 되는 간편함 ..
마지막건 실행하지 않아도 되니 len(phone_book)-1을 해줘야한다 아니면 index error발생
+ a = [1,2,3,4,5]
a = a[0:5]
a = [1,2,3,4,5]
댓글 영역