πŸ“ Computer Science/✏ Data Structure

    자료ꡬ쑰 정리

    자료ꡬ쑰 정리 1. μ„ ν˜• ꡬ쑰와 λΉ„μ„ ν˜• ꡬ쑰 2020.04.24 - [πŸ“ Computer Science/✏ Data Structure] - μ„ ν˜• ꡬ쑰(Linear Structure)와 λΉ„μ„ ν˜• ꡬ쑰(Non-Linear Structure) μ„ ν˜• ꡬ쑰(Linear Structure)와 λΉ„μ„ ν˜• ꡬ쑰(Non-Linear Structure) 1. μ„ ν˜• ꡬ쑰 데이터λ₯Ό μ—°μ†μ μœΌλ‘œ μ—°κ²°λ˜μ–΄ μžˆλŠ” λͺ¨μ–‘μœΌλ‘œ κ΅¬μ„±ν•œλ‹€. 1) λ°°μ—΄(Array) λ™μΌν•œ μžλ£Œν˜•μ˜ 데이터듀이 같은 크기둜 λ‚˜μ—΄λ˜μ–΄ μˆœμ„œλ₯Ό κ°–κ³  μžˆλŠ” 집합이닀. λΉ λ₯Έ μ ‘κ·Ό(O(1))κ³Ό random accessκ°€ tech-interview.tistory.com 2. 이진 트리 2020.04.24 - [πŸ“ Computer Science/✏ Data Structure] - ..

    μ•Œκ³ λ¦¬μ¦˜ μ„±λŠ₯ 뢄석

    μ•Œκ³ λ¦¬μ¦˜ μ„±λŠ₯ 뢄석

    μ•Œκ³ λ¦¬μ¦˜μ„ ν‰κ°€ν•˜λŠ” 데 μžˆμ–΄ μˆ˜ν–‰ μ‹œκ°„κ³Ό λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ„ ν‰κ°€κΈ°μ€€μœΌλ‘œ λ‘λŠ”λ°, μˆ˜ν–‰ μ‹œκ°„μ— ν•΄λ‹Ήλ˜λŠ” 것이 μ‹œκ°„ λ³΅μž‘λ„, λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ— ν•΄λ‹Ήλ˜λŠ” 것이 곡간 λ³΅μž‘λ„μ΄λ‹€. 보톡 μ•Œκ³ λ¦¬μ¦˜μ˜ μ„±λŠ₯ 뢄석은 λ³΅μž‘λ„λ₯Ό κ³„μ‚°ν•˜μ—¬ 점근적 ν‘œκΈ°λ²•μœΌλ‘œ λ‚˜νƒ€λ‚Έλ‹€. 점근적 뢄석 μž…λ ₯ κ°’μ˜ κ°œμˆ˜μ— 따라 μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„μ„ λ°”νƒ•μœΌλ‘œ μ•Œκ³ λ¦¬μ¦˜μ˜ νš¨μœ¨μ„±μ„ ν‰κ°€ν•œλ‹€. 1) λΉ…μ˜€ ν‘œκΈ°λ²• O 점근적 μƒν•œμ„ μœΌλ‘œ 점근적 μ¦κ°€μœ¨μ΄ f(N)을 λ„˜μ§€ μ•ŠλŠ” λͺ¨λ“  ν•¨μˆ˜λ“€μ˜ 집합이닀. 즉, 졜고 μ°¨ν•­μ˜ μ°¨μˆ˜κ°€ f(N)κ³Ό κ°™κ±°λ‚˜ 더 μž‘μ€ ν•¨μˆ˜λ“€μ˜ 집합이닀. f(N)

    ν•΄μ‹œ(Hash)

    ν•΄μ‹œ(Hash)

    ν•΄μ‹œ(Hash) 적은 μžμ›μœΌλ‘œ 데이터λ₯Ό 효율적으둜 κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ μž„μ˜μ˜ 길이 데이터λ₯Ό κ³ μ •λœ 길이의 λ°μ΄ν„°λ‘œ λ§€ν•‘ν•˜λŠ” 것이닀. ν•΄μ‹œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μ €μž₯ν•  데이터와 μ—°κ΄€λœ κ³ μœ ν•œ 숫자λ₯Ό λ§Œλ“  λ’€ 이λ₯Ό 인덱슀둜 μ‚¬μš©ν•œλ‹€. λ‚΄λΆ€μ μœΌλ‘œ 배열을 μ΄μš©ν•˜μ—¬ 데이터λ₯Ό μ €μž₯ν•˜κΈ° λ•Œλ¬Έμ— λΉ λ₯Έ 검색 속도(O(1))λ₯Ό κ°–λŠ”λ‹€. 1. ν•΄μ‹œ ν•¨μˆ˜(Hash Function) μ €μž₯ν•  데이터와 μ—°κ΄€λœ κ³ μœ ν•œ 숫자(Hash Code)λ₯Ό λ§Œλ“ λ‹€. μ €μž₯λ˜λŠ” κ°’λ“€μ˜ key 값을 ν•΄μ‹œ ν•¨μˆ˜λ₯Ό 톡해 μž‘μ€ λ²”μœ„μ˜ κ°’λ“€λ‘œ λ°”κΎΌλ‹€. 2. ν•΄μ‹œ ν…Œμ΄λΈ” ν•΄μ‹œ ν…Œμ΄λΈ”μ€ μ›μ†Œκ°€ μ €μž₯될 μžλ¦¬κ°€ μ›μ†Œμ˜ 값에 μ˜ν•΄ κ²°μ •λ˜λŠ” 자료ꡬ쑰둜 μž„μ˜μ˜ μ›μ†Œλ₯Ό ν•΄μ‹œ ν…Œμ΄λΈ”μ— μ €μž₯ν•˜λ €λ©΄ ν•΄μ‹œ ν•¨μˆ˜λ₯Ό 톡해 ν•΄μ‹œ 값을 κ³„μ‚°ν•˜κ³  ν•΄μ‹œ 값에 따라 μ €μž₯ν•œλ‹€. 3. 좩돌(Collisi..

    κ·Έλž˜ν”„(Graph)

    κ·Έλž˜ν”„(Graph)

    κ·Έλž˜ν”„(Graph) 정점(Vertex)κ³Ό κ°„μ„ (Edge)의 집합이닀. λ°©ν–₯μ„±(Directed) κ·Έλž˜ν”„: 간선에 λ°©ν–₯성이 ν¬ν•¨λœ κ·Έλž˜ν”„μ΄λ‹€. 무방ν–₯μ„±(Undirected) κ·Έλž˜ν”„: λ°©ν–₯성이 μ—†λŠ” κ·Έλž˜ν”„μ΄λ‹€. κ°€μ€‘μΉ˜(Weight) κ·Έλž˜ν”„: 간선에 κ°€μ€‘μΉ˜ 정보가 ν¬ν•¨λœ κ·Έλž˜ν”„μ΄λ‹€. λΆ€λΆ„(Sub) κ·Έλž˜ν”„: κ·Έλž˜ν”„μ˜ 일뢀 정점 및 κ°„μ„ μœΌλ‘œ 이루어진 κ·Έλž˜ν”„μ΄λ‹€. 1. κ΅¬ν˜„ 방법 1) 인접 ν–‰λ ¬ 정점(V)의 수만큼 2차원 배열을 λ§Œλ“€κ³  μΈμ ‘ν•˜λ©΄ 1, μΈμ ‘ν•˜μ§€ μ•ŠμœΌλ©΄ 0을 λ„£λŠ” λ°©λ²•μœΌλ‘œ λ©”λͺ¨λ¦¬ λ‚­λΉ„(V^2)κ°€ μžˆμœΌλ‚˜ 밀도가 높은 κ·Έλž˜ν”„ ν‘œν˜„μ— μ ν•©ν•˜λ‹€. 2) 인접 리슀트 각 μ •μ λ§ˆλ‹€ 리슀트λ₯Ό λ§Œλ“€κ³  인접해 μžˆλŠ” 정점듀을 μ—°κ²°ν•œ λ°©λ²•μœΌλ‘œ 검색 μ‹œκ°„μ΄ 였래 κ±Έλ¦¬μ§€λ§Œ λ©”λͺ¨λ¦¬ λ‚­λΉ„κ°€ μ—†λ‹€. 2. κ·Έλž˜ν”„ 탐색 1) 깊이 μš°μ„  ..

    이진 트리(Binary Tree)

    이진 트리(Binary Tree)

    이진 트리(Binary Tree) μ–΄λ–€ λ…Έλ“œμ˜ μžμ‹ λ…Έλ“œμ˜ μˆ˜κ°€ μ΅œλŒ€ 2개λ₯Ό λ„˜μ§€ μ•ŠλŠ” νŠΈλ¦¬μ΄λ‹€. 포화(Perfect) μ΄μ§„νŠΈλ¦¬: λͺ¨λ“  레벨이 꽉 μ°¬ μ΄μ§„νŠΈλ¦¬μ΄λ‹€. μ™„μ „(Complete) μ΄μ§„νŠΈλ¦¬: μœ„μ—μ„œ μ•„λž˜λ‘œ, μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½μœΌλ‘œ μ°¨λ‘€λŒ€λ‘œ μ±„μ›Œμ§„ νŠΈλ¦¬μ΄λ‹€. 사ν–₯ μ΄μ§„νŠΈλ¦¬: ν•œμͺ½μœΌλ‘œ κΈ°μšΈμ–΄μ§„ 트리둜 탐색 μ‹œκ°„μ€ O(N)이닀. 1. 이진 탐색 트리(Binary Search Tree) 탐색 μ‹œκ°„μ΄ 평균 O(logN)으둜 효율적인 탐색이 κ°€λŠ₯ν•˜λ‹€. 각 λ…Έλ“œμ˜ μžμ‹μ΄ 2개 μ΄ν•˜μ΄λ‹€. 각 λ…Έλ“œμ˜ μ™Όμͺ½ μžμ‹μ€ λΆ€λͺ¨λ³΄λ‹€ μž‘κ³  였λ₯Έμͺ½ μžμ‹μ€ λΆ€λͺ¨λ³΄λ‹€ 크닀. μ€‘λ³΅λœ κ°’μ˜ λ…Έλ“œκ°€ μ—†μ–΄μ•Ό ν•œλ‹€. 2020.04.29 - [πŸ“ Computer Science/✏ Algorithm] - [C] 이진 탐색 트리(BST) [C] 이..

    μ„ ν˜• ꡬ쑰(Linear Structure)와 λΉ„μ„ ν˜• ꡬ쑰(Non-Linear Structure)

    μ„ ν˜• ꡬ쑰(Linear Structure)와 λΉ„μ„ ν˜• ꡬ쑰(Non-Linear Structure)

    1. μ„ ν˜• ꡬ쑰 데이터λ₯Ό μ—°μ†μ μœΌλ‘œ μ—°κ²°λ˜μ–΄ μžˆλŠ” λͺ¨μ–‘μœΌλ‘œ κ΅¬μ„±ν•œλ‹€. 1) λ°°μ—΄(Array) λ™μΌν•œ μžλ£Œν˜•μ˜ 데이터듀이 같은 크기둜 λ‚˜μ—΄λ˜μ–΄ μˆœμ„œλ₯Ό κ°–κ³  μžˆλŠ” 집합이닀. λΉ λ₯Έ μ ‘κ·Ό(O(1))κ³Ό random accessκ°€ κ°€λŠ₯ν•˜λ‹€. 논리적 μ €μž₯ μˆœμ„œμ™€ 물리적 μ €μž₯ μˆœμ„œκ°€ μΌμΉ˜ν•˜κΈ° λ•Œλ¬Έμ— 인덱슀둜 ν•΄λ‹Ή μ›μ†Œμ— μ ‘κ·Όν•  수 μžˆλ‹€. μΈλ±μŠ€λž€ λ°°μ—΄μ˜ μš”μ†Œλ₯Ό κ°„λ‹¨νžˆ κ΅¬λ³„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” λ²ˆν˜Έμ΄λ‹€. (0 ~ n-1) 정적인 자료 ꡬ쑰둜 κΈ°μ–΅ μž₯μ†Œμ˜ μΆ”κ°€κ°€ μ–΄λ ΅κ³  데이터 μ‚­μ œ μ‹œ 데이터가 μ €μž₯λ˜μ–΄ 있던 κΈ°μ–΅ μž₯μ†ŒλŠ” 빈 κ³΅κ°„μœΌλ‘œ λ‚¨μ•„μžˆμ–΄ λ©”λͺ¨λ¦¬ λ‚­λΉ„κ°€ λ°œμƒν•œλ‹€. 2) λ°°μ—΄ 리슀트(Array List) λ°°μ—΄κ³Ό 같이 μ—°μ†λ˜λŠ” κΈ°μ–΅ μž₯μ†Œμ— μ°¨λ‘€λŒ€λ‘œ 데이터가 μ €μž₯λ˜μ§€λ§Œ 빈 곡간이 μ—†λ‹€. κΈ°μ–΅ μž₯μ†Œλ₯Ό μ—°μ†μ μœΌλ‘œ λ°°μ •λ°›κΈ° λ•Œλ¬Έμ— ..