첫번째 코드
짧은 순서대로 정렬을 한 후에
만약 현재 단어와 동일하게 시작되는지 뒤의 모든 단어들을 비교한다.
def solution(phone_book):
answer = True
phone_book = sorted(phone_book, key = lambda x: len(x))
for i in range(len(phone_book)-1):
now = phone_book[i]
for j in phone_book[i+1:]:
length = len(phone_book[i])
compare = j[:length]
if now == compare:
answer = False
break
if now == compare:
answer = False
break
return answer
마지막 효율성 테스트 3, 4번에서 시간초과가 발생한다.
답이 틀린 코드 같지는 않다.
두번째 코드
그래서 두가지를 변경하기로 했다.
1. 비슷한 문자열 순서대로 정렬하면 금방 거를 수 있지 않을까?
2. startswith()라는 함수를 이용하자! (feat. GPT)
그러면 계산량도 더 적어지고 코드가 짧아진다!
def solution(phone_book):
answer = True
phone_book.sort()
for i in range(len(phone_book)-1):
if phone_book[i+1].startswith(phone_book[i]):
answer = False
break
return answer
통과
링크
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
기능개발 (0) | 2024.05.23 |
---|---|
완주하지 못한 선수 (0) | 2024.05.22 |
예상 대진표 (0) | 2024.05.20 |
직사각형 별찍기 (0) | 2024.05.19 |
문자열을 정수로 바꾸기 (0) | 2024.05.19 |