ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로그래머스 전화번호 목록(LV 2)
    알고리즘 2020. 8. 6. 19:36

     

     

    200715 기상 : 2시 30분?

    ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

    이제 밤낮 바꾼다 ㄹㅇ 🤐

     


     

    문제 설명

    전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.

    구조대 : 119

    박준영 : 97 674 223

    지영석 : 11 9552 4421

    전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요 phone_book의 길이는 1 이 1,000,000 이 입니다. 각 전화번호의 길이는 1 이상 20 이하입니다.

     

     

    첫 번째

    69.2 (4개 틀림)

    테스트 ["12345","234"] 일 경우 앞에 있는게 아닌데 걍 속해서 false로 return 함 그래서 틀림.

    def solution(phone_book):
        answer = True
        for i in range(len(phone_book)-1):
            for j in range(i+1,len(phone_book)):
                if phone_book[i] in phone_book[j]:
                    return False
        return answer
    

     

    성공

    def solution(phone_book):
        
        phone_book.sort()
        # 앞에꺼부터 전체를 비교
        for i in range(len(phone_book)-1):
            for j in range(i+1,len(phone_book)):
                # 안에 포함되어 있을 경우, 조건문 들어감.
                # ["123","2312345"] 이런 경우에도 들어와서 조건식 하나 추가.
                if phone_book[i] in phone_book[j]:
                    # 앞글자 같은 경우, 바로 return 
                    if phone_book[i][0]==phone_book[j][0]:
                        return False
        return True

     

     

    startswith 함수

    접두어 일 경우 True 아닐 경우, False

    스터디때 다른 분이 사용하시길래 신기함.

    a='12345'
    print(a.startswith('123'))
    # True 

     


    느낀 점

    아 진짜 하기싫다아아ㅏㅇ아아ㅏㅏㅏ

    아무 생각 없음 요즘

     

     

    댓글

Designed by Tistory.