백준에서 트라이로 푼 문제이다.
이번엔 다른 사람 풀이를 분석해보자.
def solution(phoneBook):
phoneBook = sorted(phoneBook)
for p1, p2 in zip(phoneBook, phoneBook[1:]):
print(p1, p2)
if p2.startswith(p1):
return False
return True
print(solution(["12", "1235", "567", "88"]))
내장 함수에 대해 알아보자.
1. zip
순회할 수 있는 객체들을 받는다.
각 객체가 가지고 있는 원소를 Tuple 형태로 차례로 접근할 수 있는 반복자를 반환한다.
(반복자란 내부의 요소를 순회하는 객체이다.)
2. startswith(시작 문자, 시작 지점)
문자열이 특정 문자열로 시작하는지 알려준다.
위에 나온 풀이는 정렬했기에 가능한 알고리즘이었다.
이런 풀이는 코드가 짧아서 생산성이 좋다. 시간복잡도는 Sort + O(N^2)이다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][Python] 프린터 (0) | 2021.11.10 |
---|---|
[프로그래머스][Python] 기능개발 (0) | 2021.11.05 |
[프로그래머스][Python] 베스트앨범 (0) | 2021.11.03 |
[프로그래머스][Python] 위장 (0) | 2021.11.02 |
[프로그래머스][Python] 완주하지 못한 선수 (0) | 2021.10.29 |