본문 바로가기

Java/알고리즘

[알고리즘] 해시 - Lv.2 전화번호 목록

해시

1. 전화번호 목록

  • phone_book.sort(): 비교하기 편하게 전화번호 목록 정렬
  • for i in range(len(phone_book) -1): phone_book 리스트만큼 for문을 돌리되, index range error가 발생하지 않도록 -1
    • for문에서 -1을 하지 않을 경우, if문을 돌면서 range 에러 발생
    • 만약 len(phone_book) = 3이라면, if문에서 phone_book[3] 없는 인덱스를 호출하는 상황 발생
  • 어떤 번호가 다른 번호의 접두어로 있다면 False / 그렇지 않으면 True
    • if phone_book[i+1].startswith(phone_book[i]): 뒷 번호에 앞 번호가 포함되어 있다면
    • answer = False: False로 변경
      • startswith(): 현재 문자열이 사용자가 지정한 특정문자로 시작하는지 확인하는 함수, 리턴 값: True or False
      • endswith(): 현재 문자열이 사용자가 지정한 특정문자로 시작하는지 확인하는 함수, 리턴 값: True or False
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
    
    return answer

 

참고 사이트: https://programmers.co.kr/

 

프로그래머스

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

programmers.co.kr

 

반응형