😎 κ³΅λΆ€ν•˜λŠ” μ§•μ§•μ•ŒνŒŒμΉ΄λŠ” μ²˜μŒμ΄μ§€?

[μ•Œκ³ λ¦¬μ¦˜ μœ„ν•œ ν•œλ°œμ§ λ‘λ°œμ§πŸΎ] νž™(heap) 자료ꡬ쑰 λ³Έλ¬Έ

πŸ‘©‍πŸ’» 컴퓨터 ꡬ쑰/Algorithm

[μ•Œκ³ λ¦¬μ¦˜ μœ„ν•œ ν•œλ°œμ§ λ‘λ°œμ§πŸΎ] νž™(heap) 자료ꡬ쑰

μ§•μ§•μ•ŒνŒŒμΉ΄ 2023. 6. 26. 13:44
728x90
λ°˜μ‘ν˜•

<λ³Έ λΈ”λ‘œκ·ΈλŠ” μ½”λ”©λ¬Έ codingmoon λ‹˜μ˜ 유튜브λ₯Ό μ°Έκ³ ν•΄μ„œ κ³΅λΆ€ν•˜λ©° μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€ :-)>

=> νž™(heap) μžλ£Œκ΅¬μ‘° κ°œλ… μ΄ν•΄ν•˜κΈ° | κ°œλ°œμž μ½”λ”©ν…ŒμŠ€νŠΈ & λ©΄μ ‘ μ§€μ‹

 

🫧 νž™(heap) μžλ£Œκ΅¬μ‘°

: μ΅œλŒ€κ°’ 및 μ΅œμ†Œκ°’μ„ μ°Ύμ•„λ‚΄λŠ” 연산을 λΉ λ₯΄κ²Œ ν•˜κΈ° μœ„ν•΄ κ³ μ•ˆλœ μ™„μ „ μ΄μ§„νŠΈλ¦¬ (complete binary tree) λ₯Ό 기본으둜 ν•œ 자료ꡬ쑰

: Aκ°€ B의 λΆ€λͺ¨ λ…Έλ“œμ΄λ©΄, A의 ν‚€ κ°’κ³Ό B의 ν‚€ κ°’ μ‚¬μ΄μ—λŠ” λŒ€μ†Œ 관계가 μ„±λ¦½λœλ‹€

- μ΅œλŒ€ νž™ : λΆ€λͺ¨ λ…Έλ“œμ˜ ν‚€ 값이 μžμ‹ λ…Έλ“œμ˜ ν‚€ 값보닀 항상 큰 νž™ 가짐

left : i * 2 + 1
right : i * 2 + 2
parent : (i - 1) / 2

- μ΅œμ†Œ νž™ : λΆ€λͺ¨ λ…Έλ“œμ˜ ν‚€ 값이 μžμ‹ λ…Έλ“œμ˜ ν‚€ 값보닀 항상 μž‘μ€ νž™ 가짐

 

🫧 νž™(heap) μ£Όμš” λ©”μ„œλ“œ

peek() : μ΅œλŒ€/μ΅œμ†Œκ°’ 리턴

size() : νž™ μ‚¬μ΄μ¦ˆ 리턴

isEmpty() : νž™ μ‚¬μ΄μ¦ˆ 0 체크 

πŸš€ μ½”ν…Œ 문제
- k번째 큰 수
- κ°€μž₯ λΉˆλ²ˆν•˜κ²Œ λ‚˜μ˜€λŠ” 수 /κΈ€μž k개
- μΆœν˜„ λΉˆλ„λ³„λ‘œ 문자 μ •λ ¬
- 이쀑 μš°μ„  μˆœμœ„ 

 

728x90
λ°˜μ‘ν˜•
Comments