반응형
풀이
def solution(phone_book):
phone_book.sort()
for i in range(len(phone_book) - 1):
if phone_book[i] in phone_book[i+1]:
return False
return True
실행 결과
정확성 테스트
테스트 1 〉 | 통과 (0.04ms, 10.8MB) |
테스트 2 〉 | 통과 (0.04ms, 10.7MB) |
테스트 3 〉 | 통과 (0.04ms, 10.7MB) |
테스트 4 〉 | 통과 (0.04ms, 10.7MB) |
테스트 5 〉 | 통과 (0.06ms, 10.7MB) |
테스트 6 〉 | 통과 (0.04ms, 10.7MB) |
테스트 7 〉 | 통과 (0.04ms, 10.7MB) |
테스트 8 〉 | 통과 (0.04ms, 10.7MB) |
테스트 9 〉 | 통과 (0.05ms, 10.6MB) |
테스트 10 〉 | 통과 (0.04ms, 10.6MB) |
테스트 11 〉 | 통과 (0.04ms, 10.7MB) |
효율성 테스트
테스트 1 〉 | 통과 (3.08ms, 15.3MB) |
테스트 2 〉 | 통과 (3.11ms, 15.3MB) |
채점 결과
정확성: 84.6
효율성: 15.4
합계: 100.0 / 100.0
해설
우선 정렬을 실행합니다. 문자열은 크기대로 잘 정렬이 됩니다. 따라서 같은 접두사가 있는 경우에는 앞뒤로만 존재하게 됩니다. 이 부분이 잘 이해가 되지 않을 수 있습니다. 실제로 출력을 해보면서 값을 비교해보면 다음과 같이 쉽게 풀리는 것을 확인 할 수 있습니다. 실제 이중포문을 돌려서도 해결을 할 수 있습니다. 하지만 정렬을 하면 하나의 포문만으로 문제를 해결 할 수 있었습니다. 직관적으로 해결하기보다 이러한 방식으로 해결할 방법이 있을 지에 대해 고민을 꾸준히 해보아야 할 것 같습니다.
반응형
'SW > 알고리즘' 카테고리의 다른 글
파이썬 : 프로그래머스 : 예산 : 풀이 (0) | 2019.08.24 |
---|---|
파이썬 : 프로그래머스 : 기능개발 : 풀이 (0) | 2019.08.22 |
C++ : 프로그래머스 : 짝수와 홀수 : 풀이 (0) | 2019.06.22 |
C++ : 프로그래머스 : 약수의 합 : 풀이 (0) | 2019.06.19 |
C++ : 프로그래머스 : 수박수박수박수박수박수? : 풀이 (0) | 2019.06.18 |