728x90
반응형
SMALL
✏️ 문제
문제 파악
처음에는 in 으로 풀면 되지 않나 싶어서 했는데 역시나.. 시간 초과로 통과가 되지 않았다.
찾아보니 딕셔너리와 리스트(배열)의 in 연산 시간복잡도는 다음과 같았다.
자료구조 | 딕셔너리 | 리스트(배열) |
시간복잡도 | (평균), O(n) (최악) | O(n) |
그래서 딕셔너리를 생성해 이를 in 처리해서 풀었다.
코드
- 시간 초과 코드
def solution(phone_book):
for i in range(len(phone_book)-1):
for j in range(i+1, len(phone_book)):
if (phone_book[i] == phone_book[j][:len(phone_book[i])]) or (phone_book[j] in phone_book[i][:len(phone_book[j])]):
return False
return True
- 해결 코드
def solution(phone_book):
phone_dict = {}
for phone in phone_book:
phone_dict[phone] = True
for phone in phone_book:
temp = ""
for char in phone:
temp += char
if temp in phone_dict and temp != phone:
return False
return True
728x90
반응형
LIST
'PS > 프로그래머스' 카테고리의 다른 글
[Python] 모음 사전 (0) | 2024.12.12 |
---|---|
[Python] 타겟 넘버 (0) | 2024.12.11 |
[Python] 피로도 (0) | 2024.12.10 |
[Python] 프로세스 (0) | 2024.12.10 |
[Python] 의상 (1) | 2024.12.09 |