본문 바로가기
프로그래머스/2단계

(Python/LV2) 전화번호 목록

by windy7271 2022. 9. 26.
728x90
반응형

문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/42577

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이과정:

def solution(phone_book):
    phone_book.sort()
    set = { i for i in phone_book}
    for i in range(1,len(phone_book)):
        if set[i-1] in set[i]:
            return False
    return True
    
이렇게 하려했는데 set 함수는 슬라이싱이 안됨
def solution(phone_book):
    phone_book.sort()
    list = [ i for i in phone_book]
    for i in range(1,len(phone_book)):
        if list[i-1] in list[i]:
            return False
    return True
    
# 95점 풀이 1개 틀림,,
# 이유 중간에서 겹쳐도 false 나옴

정답 풀이:

def solution(phone_book):
    phone_book.sort()
    for i in range(1,len(phone_book)):
        if phone_book[i-1] == phone_book[i][:len(phone_book[i-1])]:
            return False
    return True
    
# 100점
# 필요없는 리스트 컴프리헨션 삭제
# 중간에 들어가있는건 제외

다른 풀이


# 위에 if 문을 밑에꺼로 대체 가능

		if p2.startswith(p1):
            return False


True 나 False 를 반환한다.

반응형

댓글