Daily/Today I Learned

210122_TIL (μ‹œκ°„λ³΅μž‘λ„, 자료ꡬ쑰 볡슡)

joooing 2021. 1. 23. 05:05
λ°˜μ‘ν˜•

🍎 μ˜€λŠ˜ ν•œ 일


βœ”οΈ Big-O ν‘œκΈ°λ²• & 자료ꡬ쑰 연관지어 생각해보기
λΉ…μ˜€(Big-O) ν‘œκΈ°λ²•μ€ κ·Έλƒ₯ μ•Œκ³ λ¦¬μ¦˜μ΄ λŒμ•„κ°€λŠ” μ΅œμ•…μ˜ μ‹œκ°„μ΄κ³ , μƒμˆ˜..μ§€μˆ˜.. 등이 μžˆλ‹€λŠ” 것, 그리고 λŒ€λž΅ μ–΄λ–€ μ½”λ“œκ°€ μ–΄λŠμ •λ„μ˜ μ‹œκ°„μ΄ κ±Έλ¦¬λŠ” κ΅¬λ‚˜ μ •λ„λ‘œλ§Œ μ•Œκ³  μžˆμ—ˆλ‹€. λΉ…μ˜€ ν‘œκΈ°λ²•μ— λŒ€ν•΄ μ’€ 더 깊게 λ‹€λ£¨λŠ” μ„Έμ…˜μ„ λ“€μœΌλ©΄μ„œ μžλ£Œκ΅¬μ‘°μ™€ μ–΄λ–»κ²Œ μ—°κ΄€λ˜λŠ”μ§€λ„ μžμ„Ένžˆ λ°°μ›Œ 전에 λΈ”λ‘œκΉ… ν•΄λ’€λ˜ 글에 μΆ”κ°€ν–ˆκ³ , n^3의 μ‹œκ°„λ„ λΉ…μ˜€λ‘œ ν‘œμ‹œν•˜λ©΄ n^2둜 μ·¨κΈ‰ν•œλ‹€λŠ” 것, 그리고 μ½”λ”©ν…ŒμŠ€νŠΈ 문제λ₯Ό ν’€ λ•Œ μ‹œκ°„λ³΅μž‘λ„μ— λŒ€ν•œ 쑰건을 보고 μ–΄λ–€ 자료ꡬ쑰λ₯Ό μ¨μ„œ ν’€ 수 μžˆλŠ” λ¬Έμ œμΈμ§€ μ—­μœΌλ‘œ 힌트λ₯Ό 얻을 수 μžˆλ‹€λŠ” 것도 μ•Œκ²Œ λ˜μ—ˆλ‹€.

βœ”οΈ Data Structure 볡슡
이번 μ£Ό λ™μ•ˆ λ°°μ› λ˜ μžλ£Œκ΅¬μ‘°λ“€(μŠ€νƒ, 큐, μ—°κ²°λ¦¬μŠ€νŠΈ ,ν•΄μ‹œν…Œμ΄λΈ”, κ·Έλž˜ν”„, 트리, μ΄μ§„νƒμƒ‰νŠΈλ¦¬)을 ν•œλ²ˆμ”© μƒκ°ν•˜λ©΄μ„œ 그렀보고, 각 ꡬ쑰와 κ΄€λ ¨λœ λ©”μ„œλ“œλ“€μ„ ν•œλ²ˆμ”© 더 λ³΅μŠ΅ν•˜λ©° μž‘μ„±ν•΄λ΄€λ‹€. 특히 ν•΄μ‹œ ν…Œμ΄λΈ”μ€ λͺ¨κ°μ½”λ₯Ό ν•˜λ©΄μ„œ λ‹€λ₯Έ 뢄듀은 μ–΄λ–€ μ‹μœΌλ‘œ μ½”λ“œλ₯Ό μž‘μ„±ν–ˆλŠ” 지 λ³Ό κΈ°νšŒκ°€ μžˆμ—ˆλŠ”λ°, λ³΄λ©΄μ„œ 정말 방법이 λ‹€μ–‘ν•˜κ΅¬λ‚˜ ν•˜κ³  λŠκΌˆλ‹€. λ‚˜λŠ” bucket으둜 객체λ₯Ό μ‚¬μš©ν•˜κ³  νŠœν”Œμ€ κ·Έλƒ₯ 속성과 κ°’λ§Œ λ„£μ–΄μ€˜μ„œ { key1:val1, key2:val2 } μ΄λŸ°μ‹μœΌλ‘œ κ΅¬ν˜„ν–ˆλŠ”λ°, μ–΄λ–€ 뢄은 bucket을 λ°°μ—΄λ‘œ μ‚¬μš©ν•΄ [ {key1:val1}, {key2:val2} ] μ΄λŸ°μ‹μœΌλ‘œ ν•˜μ‹œκΈ°λ„ ν•˜κ³ , μ•„μ˜ˆ 객체 bucket μ•ˆμ— 객체 tuple을 λ„£μ–΄ { { key1: val1 }, { key2: val2 } } μ΄λ ‡κ²Œ ν•˜μ‹  뢄도 계셨닀. νŽ˜μ–΄λΆ„κ³Ό 처음 μ½”λ“œλ₯Ό μž‘μ„±ν•  λ•Œλ„ λ°°μ—΄μ΄λ‚˜ 객체둜 ν‘œν˜„ν• μˆ˜λ„ μžˆκ² λ‹€κ³  μ΄μ•ΌκΈ°λ§Œ ν•˜κ³  ν•œκ°€μ§€ λ°©λ²•μœΌλ‘œλ§Œ μ‹œλ„ν•΄λ΄€μ—ˆλŠ”λ°, λ‹€λ“€ μ½”λ“œλ₯Ό κ³΅μœ ν•΄μ£Όμ‹  덕에 μ‹€μ œ μ½”λ“œλ‘œ μž‘μ„±ν–ˆμ„ λ•Œ μ–΄λ–€ λͺ¨μŠ΅μΈμ§€ λ³Ό 수 μžˆμ–΄ μœ μ΅ν•œ μ‹œκ°„μ΄μ—ˆλ‹€ :)

 

🍎 κΈ°μ–΅ν•  것


βœ”οΈ λ°°μ—΄ λ©”μ„œλ“œ μ‹œκ°„λ³΅μž‘λ„
arr.filter : O(n)
arr.map : O(n)
arr.sort : O(n * log n)

βœ”οΈ 인접 ν–‰λ ¬
num * num μ €μž₯곡간 ν•„μš”
인덱슀λ₯Ό μ§κ΄€μ μœΌλ‘œ κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ 방법 1) indexλ₯Ό 1λΆ€ν„° μ‹œμž‘ν•΄λ²„λ¦¬κ±°λ‚˜ 2) (num+1) * (num+1) λ°°μ—΄λ‘œ 관리할 수 μžˆλ‹€.

 

🍎 λ” 곡뢀할 것


βœ”οΈ Github 였λ₯˜ ν•΄κ²°
βœ”οΈ 깊이, λ„ˆλΉ„ μš°μ„  탐색
βœ”οΈ heap(μš°μ„ μˆœμœ„ν)
βœ”οΈ μˆ˜μ‹ νŒŒμ„œ 트리 κΈ€ 읽어보기
λ°˜μ‘ν˜•