📌문제
https://programmers.co.kr/learn/courses/30/lessons/42577
🎖️난이도
Level 2
✔️풀이
# sol1
def solution(phone_book):
phone_book.sort() # sort() !!
# 2중 for문 안써줘야 효율성 향상!
for i in range(len(phone_book)-1):
if phone_book[i] in phone_book[i+1] and phone_book[i+1].split(phone_book[i])[0] == "":
return False
return True
return True
# sol2) s.startswith()
def solution(phone_book):
phone_book.sort()
for i in range(len(phone_book)-1):
if phone_book[i+1].startswith(phone_book[i]): # s.startswith() !!
return False
return True
# sol3) collections.Counter().keys()
def solution(phoneBook):
phoneBook = sorted(phoneBook)
for p1, p2 in zip(phoneBook, phoneBook[1:]): # 한 배열 내에서 두 인덱스로 각각 하나씩 다 반복할 때, zip 쓰기 (2중 for문 대신!)
if p2.startswith(p1): # p2가 p1으로 시작하면
return False
return True
# 오답 (정확성 통과, 효율성 실패)
def solution(phone_book):
phone_book.sort() # sort() !!
# 2중 for문 안써줘야 효율성 향상!
for i in range(len(phone_book)-1):
if phone_book[i] in phone_book[i+1] and phone_book[i+1].split(phone_book[i])[0] == "":
return False
return True
'[ 알고리즘 ] > Hash' 카테고리의 다른 글
[프로그래머스] 위장 (0) | 2022.06.29 |
---|---|
[프로그래머스] 완주하지 못한 선수 (0) | 2022.06.29 |