DFS(κΉμ΄μ°μ νμ)κΈ°μ΄ -4. λ°λμ΄ μΉμ°¨
λμ νμ΄ κ°μ νμ΄
λμ νμ΄ κ°μ νμ΄
λμ νμ΄ κ°μ νμ΄
μ΄μ§ νΈλ¦¬(Binary Tree)λ₯Ό νμνλ λ°©λ²μλ ν¬κ² λ€μμ 4κ°μ§κ° μλ€. μ μμν(Preorder Traversal) μ€μμν(Inorder Traversal) νμμν(Postorder Traversal) λ 벨μν(Levelorder Traversal) λλ BFS(Breadth-First Search; λλΉ μ°μ νμ) λ 벨μν(;BFS)λ₯Ό μ μΈν λλ¨Έμ§ μνλ°©μμ DFS(Depth-First Search; κΉμ΄ μ°μ νμ)μΌλ‘ λΆλ₯ν μ μλ€. μ μμν(preorder traversal) μ μμνλ λ£¨νΈ λ Έλλ₯Ό λ¨Όμ νμνκ³ , μμ λ Έλλ₯Ό νμ λΆλͺ¨-μΌμͺ½-μ€λ₯Έμͺ½ μ€μμν(inorder traversal) μ€μμνλ μΌμͺ½ μμ λ Έλλ₯Ό νμνκ³ , λ£¨νΈ λ Έλλ₯Ό νμνκ³ , μ€λ₯Έμͺ½ μμ λ Έλλ₯Ό ..
λμ νμ΄ κ°μ νμ΄
μ¬κ·ν¨μ μκΈ° μμ μ νΈμΆνλ ν¨μ μ¬κ·ν¨μ μλν λ μ€ν μλ£κ΅¬μ‘°λ₯Ό μ¬μ© λ°λ³΅λ¬Έμ ν¨κ³Όλ₯Ό λΌ μ μλ€ (λ°λ³΅λ¬Έμ λ체, 3μ€4μ€ forλ¬Έ ) μΆλ ₯ ν μ¬κ·ν¨μ νΈμΆ μ¬κ·ν¨μ νΈμΆ ν μΆλ ₯ 1μ λ°ννλ©° μ΄μ μ return νμλ κ°λ€μ κ³±ν λ€ λ€μ λ°νν΄κ°λ κ³Όμ μ κ±°μΉ©λλ€ https://m.blog.naver.com/jsky10503/221248164066 μ¬κ·(Recursion)νΈμΆλ‘ μμ보λ μκ³ λ¦¬μ¦κΈ°μ΄ ν¨μ λ΄μμ μκΈ°μμ μ ν¨μλ₯Ό λ€μ νΈμΆνλ λ°©λ²μ μ¬κ·νΈμΆμ΄λΌκ³ ν©λλ€. Recursionμ΄λΌκ³ λ λ§μ΄ μ... blog.naver.com
λμ νμ΄ μ΅λν heapqμμλ μ΅λ νμ μ 곡νμ§ μλλ€. λ°λΌμ λ€μκ³Ό κ°μ΄ λΆνΈλ₯Ό λ³κ²½νλ λ°©λ²μ μ¬μ©ν΄μ μ΅λ νμ ꡬννλ€. λΆνΈλ₯Ό λ°κΏμ μ΅μ νμ λ£μ΄μ€ λ€μ μ΅μκ°λΆν° popμ ν΄μ€ λ λ€μ λΆνΈλ₯Ό λ°κΏμ£Όλ©΄ μ΅λ νκ³Ό λμΌνλ€. import heapq heap = [] values = [1,5,3,2,4] # μλ forλ¬Έμ μ€νμν€κ³ λλ©΄ heapμ [-5,-4,-3,-1,-2]κ° λλ€. for value in values: heapq.heappush(heap, -value) # μλ forλ¬Έμ μ€νμν€λ©΄ 5,4,3,2,1μ΄ μΆλ ₯λλ€. μ¦, ν° μ«μλΆν° μΆλ ₯μ΄ λλ€. for i in range(5): print(-heapq.heappop(heap))
λμ νμ΄ μ΅μ ν: λΆλͺ¨ λ Έλμ ν€κ°μ΄ μμ λ Έλμ ν€κ°λ³΄λ€ νμ μμ ν μ΅λ ν: λΆλͺ¨ λ Έλμ ν€κ°μ΄ μμ λ Έλμ ν€κ°λ³΄λ€ νμ ν° ν ν μμ± & μμ μΆκ° import heapq heap = [] heapq.heappush(heap, 50) μ΄λ―Έ μμ±ν΄λ 리μ€νΈκ° μλ€λ©΄ heapify ν¨μλ₯Ό ν΅ν΄ μ¦κ°μ μΌλ‘ ν μλ£νμΌλ‘ λ³νν μ μλ€. heap2 = [50 ,10, 20] heapq.heapify(heap2) νμμ μμ μμ heappop ν¨μλ κ°μ₯ μμ μμλ₯Ό νμμ μ κ±°ν¨κ³Ό λμμ κ·Έλ₯Ό κ²°κ΄κ°μΌλ‘ 리ν΄νλ€. result = heapq.heappop(heap) print(result) https://littlefoxdiary.tistory.com/m/3 [Python] ν μλ£κ΅¬μ‘° / ..