[문제이름] (Python)

0. 출처

1. 기록

  • 22/04/13 (수)

2. 풀이

(1) 아이디어

1. 아이디어
>> 반복문 돌면서 기준이되는 폰넘버를 다른 폰넘버가 앞자리부터 가지고 있는지 확인해본다.
>> slicing 활용!

2. 시간복잡도
>>

3. 자료구조
>>

(2) 코드

# 효율성 테스트 3,4 실패

def solution(phone_book):
    phone_book.sort()
    for num in range(0, len(phone_book)):
        for target in range(num+1, len(phone_book)):
            target_num = phone_book[target]
            if phone_book[num] == target_num[0:len(phone_book[num])]:
                return False
    return True
# startswith() 를 활용하면 이중for문없이 해결할 수 있다.

def solution(phone_book):
    phone_book.sort()

    for num in range(0, len(phone_book)-1):
        if phone_book[num+1].startswith(phone_book[num]):
            return False
    return True
# startswith() 와 zip() 을 활용한 풀이

def solution(phoneBook):
    phoneBook.sort()

    print(phoneBook)
    print(phoneBook[1:])
    print(list(zip(phoneBook, phoneBook[1:])))

    for p1, p2 in zip(phoneBook, phoneBook[1:]):
        if p2.startswith(p1):
            return False
    return True

(3) 정리

(4) 참고

효율성 참고1
효율성 참고2
참고 풀이

+ Recent posts