[프로그래머스/Python] 해시 - 전화번호부 목록
🤓 나의 풀이
def solution(phone_book):
answer = True
# ["119","1195524421","97674223"]
phone_book.sort()
for i in range(0,len(phone_book)-1):
if phone_book[i+1][:len(phone_book[i])] == phone_book[i]:
answer = False
break
return answer
if ~ return False else ~ return True
: 순서대로 비교하기때문에 첫번째 str이 두번째 str의 접두어가 아니고, 세번째 str의 접두어일 경우를 고려하지 못함. 첫번째랑 두번째 비교했을 때 바로 True로 반환하기 때문에answer = True
phone_book.sort()
: 문자열 비교에서는 보통 정렬 먼저!break
: for문을 다 비교할 필요 없으니까
👩🏻🏫 다른 풀이
def solution(phoneBook):
phoneBook = sorted(phoneBook)
for p1, p2 in zip(phoneBook, phoneBook[1:]):
if p2.startswith(p1):
return False
return True
✏️ Python 문법
리스트.sort() vs sorted(리스트)
- 숫자 정렬이 아니라
문자열 정렬
이어서 "1195524421" 이 "97674223"보다 앞에 오게 됨 어차피 접두어만 찾는거라서 정렬 후에는 앞 뒤만 비교해도 상관없음 리스트 명.sort()
: 리스트형의 메소드이며 리스트 원본값을 직접 수정sorted(리스트 명)
: 내장 함수이며 리스트 원본 값은 그대로이고 정렬 값을 반환
list = [2,3,1]
sort_list = list.sort()
print(list) # [1,2,3]
print(sort_list) # None -> 정렬된 값은 리턴되지 않음!! 원본 리스트 값이 정렬된 값으로 수정된 것!!
list = [2,3,1]
sorted_list = sorted(list)
print(list) # [2,3,1] -> 원본 리스트는 값이 유지됨
print(sorted_list) # [1,2,3] -> 정렬된 새 리스트
zip(리스트, 리스트,,,)
- 내장함수
- 동일한 요소 개수를 가진 두 개 이상의 리스트를 인자로 받고, 각 리스트의 같은 인덱스의 요소들끼리 묶은 튜플을 요소로 하는 리스트를 만들어 리턴
print(zip([1,2,3], (4,5,6), "abcd")) # <zip object at 0x7f304c099380>
test = list(zip([1,2,3], (4,5,6), "abcd"))
print(test) # [(1, 4, 'a'), (2, 5, 'b'), (3, 6, 'c')]
str1.startswith(str2,beg,end)
- 메소드
- str : 찾고자하는 문자열
beg : 문자열의 검색 시작 위치를 설정하는 값
end : 문자열의 검색 끝 위치를 설정하는 값 - str1이 str2로 시작할 때 True를 반환, 아닌 경우 False를 반환
str1.endswith(str2,beg,end)
- 메소드
- str1이 str2로 끝날 때 True를 반환, 아닌 경우 False를 반환
str = "this is string example....wow!!!"
print(str.startswith( 'this' )) # True
print(str.startswith( 'is', 2, 4 )) # True
print(str.startswith( 'this', 2, 4 )) # Fasle
print(str.endswith( 'wow!!!' )) # True
print(str.endswith( 'is', 2, 4 )) # True
print(str.endswith( 'is', 2, 6 )) # Fasle
한줄 평: 정답을 흘끔흘끔 훔쳐보긴 했지만 그래도 풀긴 풀었네.. 2게 된다고?
Author And Source
이 문제에 관하여([프로그래머스/Python] 해시 - 전화번호부 목록), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sugenius77/프로그래머스해시-전화번호부-목록저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)