밀린 진도 열심히 따라잡는중...😵
DFT(Depth-First-Traversal) 깊이 우선 순회
BFT(Breadth-First-Traversal) 너비 우선 순회
str.join(iterable) strlist = ['안', '녕', '하', '세', '요']
str1 = ''.join(strlist)
str2 = '!'.join(strlist)
print(str1) # '안녕하세요'
print(str2) # '안!녕!하!세!요'
힙(Heap) 자료구조와 python에서 custom comparator를 만들어 정렬하는 법을 알게 되었다!
또, 파이썬 dictionary에서 get(key) 사용시, key 값이 dictionary 내에 없을 때 default값을 받아오게 하는 법도 알게되었다~~!
최대 세 가지 성질을 만족하고 있는 완전 이진 트리로 최소힙과 최대힙이 있음
여러 개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 자료구조
반정렬 상태(느슨한 정렬 상태) 를 유지
최대 힙의 성질
이진 탐색 트리와의 비교
장점
n개의 원소로 이루어진 최대 힙의 깊이는 항상 log(n) + 1 구현
삽입 연산
삭제 연산
lambda 함수를 이용하는 것 외에도 functools.cmp_to_key()를 활용하여
sort() 또는 sorted() 사용 시 custom comparator를 key로 지정할 수 있음
사용 예
from functools import cmp_to_key
def myComparator(a, b): # custom 정렬 기준 구현, 여기서는 내림차순 정렬을 구현함
if a > b:
return -1 # a가 앞에 와야함
elif a < b:
return 1 # b가 앞에 와야함
else:
return 0 # 우선순위 동일
mylist = [1, 3, 2, 6, 4]
newlist = sorted(mylist, key=cmp_to_key(myComparator))
mylist.sort(key=cmp_to_key(myComparator))
### 결과 : [6, 4, 3, 2, 1]
get(key)get(k) 는 k에 해당하는 key 값의 value를 리턴None을 리턴get(key, default값)를 사용하면 됨!d = { 'a':2, 'c':3, 'd':1 }
print(d['b']) # KeyError 발생
print(d.get('b')) # 'None'
print(d.get('b', '?')) # '?'