전화번호 목록 python

Minji·2022년 4월 12일
0

코딩테스트 연습

목록 보기
1/11

해시, 해시테이블

python에서의 해시테이블은 dictionary
dictionary : key-value
해시테이블 : key-value

  • 삽입,삭제,검색의 시간복잡도는 평균적으로 O(1)

해시함수: 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수

처음 내가 푼 방법

def solution(phone_book):
    
    for phone in phone_book:
        for tmp in phone_book:
            if tmp!=phone and tmp.find(phone)==0:
                return False
        
    return True

-> 효율성테스트 두개를 통과하지 못함

다른 사람 풀이

def solution(phone_book):
	phone_book=sorted(phone_book)
	for i,j in zip(phone_book,phone_book[1:]):
		if j.startswith(i):
			return False
	return True

startswith()

형식: str.startswith(str or tuple)
반환값: True or False

for 문 중첩

  1. zip()
    for문 두개 돌릴 수 있음
x=[1,2,3]
y=[4,5,6]
for i in zip(x,y):
	print(i) 

출력
(1,4)
(2,5)
(3,6)
-> 이중 for문보다 조금 더 빠름

  1. enumerate()
x=[4,5,6]
for idx,value in enumerate(x):
	print(idx)
    print(value)

출력
0
4
1
5
2
6

profile
매일매일 성장하기 : )

0개의 댓글