뚜당탕탕
[programmers / python] 해시(Hash) - 전화번호 목록 본문
def solution(phone_book):
answer = True
phone_book = sorted(phone_book)
for i in range(1, len(phone_book)) :
if phone_book[i-1] in phone_book[i] :
answer = False
return answer
정확성: 79.2 (19/20 맞음), 효율성: 16.7 (4/4 맞음)
합계: 95.8 / 100.0
테스트케이스 13번에서만 틀렸다.
질문목록에서 찾아보니, 접두어가 아닌 문장 중간이나 뒷부분에서 포함되는 경우도 생각해야 한다고 한다.
def solution(phone_book):
answer = True
phone_book = sorted(phone_book)
for i in range(1, len(phone_book)) :
if phone_book[i-1] in phone_book[i] :
l = len(phone_book[i-1])
if (phone_book[i-1]) == (phone_book[i][ : l]) :
answer = False
return answer
조건을 하나 추가했다.
l = len(phone_book[i-1])
if (phone_book[i-1]) == (phone_book[i][ : l]) :
answer = False
phone_book[i-1] 이 "123" 이고
phone_book[i] 가 "123456" 이라면
phone_book[i-1] 의 길이만큼, 앞부분 부터 잘랐을 때, 일치하는 경우에만 False 를 반환하도록 했다.
"123456" 에 "123" 이 접두어인지 보기 위해, "123"의 길이 3만큼 앞부분 부터 잘라 비교한다.
'💯 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[programmers / python] k번째수 (0) | 2021.10.14 |
---|---|
[programmers / python] 크레인 인형뽑기 게임 (0) | 2021.10.13 |
[programmers / python] 월간 코드 챌린지 시즌3 (10월) (799등) (0) | 2021.10.09 |
[programmers / python] 해시(Hash) - 완주하지 못한 선수 (0) | 2021.10.08 |
[programmers / python] 키패드 누르기 (0) | 2021.09.30 |
Comments