๐ฎ ์จ-์์ค
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 4: ๋๋ธ ๋งํฌ๋ ๋ฆฌ์คํธ(Doubly Linked List)
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 4: ๋๋ธ ๋งํฌ๋ ๋ฆฌ์คํธ(Doubly Linked List)
2021.12.13๋๋ธ ๋งํฌ๋ ๋ฆฌ์คํธ(Doubly Linked List) ๋๋ธ ๋งํฌ๋ ๋ฆฌ์คํธ๋ ๋งํฌ๋ ๋ฆฌ์คํธ์ ๊ฐ๋
์ ๊ฐ์ง๋ง ๊ฐ ๋
ธ๋๊ฐ ์์ ์ ์ด์ ๋
ธ๋๊น์ง ์๊ณ ์๋ค๋ ์ ์์ ๋ค๋ฆ
๋๋ค. ๊ธฐ์กด ๋งํฌ๋ ๋ฆฌ์คํธ๋ ๊ฐ ๋
ธ๋๊ฐ ๋ฐ๋ก ๋ค์ ๋
ธ๋์ ์ฐธ์กฐ ๊ฐ๋ง ์๊ณ ์์ง๋ง, ์ด๋ฒ์๋ ์์ ์ ์์ชฝ์ ๋
ธ๋๋ฅผ ๋ชจ๋ ์ฐธ์กฐํ๊ธฐ ๋๋ฌธ์ ์ญ์ ๋ ์ฝ์
์ฐ์ฐ์ ๊ตฌํ์ด ์กฐ๊ธ ๋ ์ฌ์์ง๋๋ค. ๋ผ๋ ๋ง๋ค๊ธฐ Node import Foundation class Node { let id: Int let data: T var next: Node? = nil var prev: Node? = nil init(id: Int, data: T) { self.id = id self.data = data } } ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ฆฌ์คํธ๋ฅผ ๊ตฌ์ฑํ ๋
ธ๋๋ ๊ฐ์ ์์ ์ id, ์ ์ฅ..
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 3: ํ(Queue)
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 3: ํ(Queue)
2021.12.13ํ (Queue) ํ๋ FIFO(First In First Out)์ ํน์ฑ์ ๊ฐ์ง๋ ์๋ฃ๊ตฌ์กฐ์
๋๋ค. ์ด๋ฆ์ฒ๋ผ ๊ฐ์ฅ ๋จผ์ ๋ฃ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ๊บผ๋ด๋ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ค์ํํธ์์๋ ๋ฐฐ์ด์์ removeFirst๋ฅผ ์ง์ํ๊ธด ํ์ง๋ง, ์ด๋ ๊ฒ ์๊ฐ๋ณต์ก๋๋ O(n)์ด๋ผ์, ๋์๋ง FIFO์ผ ๋ฟ, ์ญ์ ์ O(1)์ ๋ณด์ฅํ๋ ํ๊ฐ ๋ ์๋ ์์ต๋๋ค. ๊ทธ๋์ ์ด ํฌ์คํธ์์๋ ๋งํฌ๋ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํด์ ํ๋ฅผ ๊ตฌํํ๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ผ๋ ๋ง๋ค๊ธฐ var list = TwoPointerLinkedList() init(_ elements: [T] = []) { for element in elements { list.add(node: Node(data: element)) } } var count : Int { retu..
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 2: ๋งํฌ๋ ๋ฆฌ์คํธ(Linked List)
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 2: ๋งํฌ๋ ๋ฆฌ์คํธ(Linked List)
2021.12.13๋งํฌ๋ ๋ฆฌ์คํธ (Linked List) ๋งํฌ๋ ๋ฆฌ์คํธ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋
ธ๋๋ค์ ํฌ์ธํฐ๋ก ์ ํ์ ์ผ๋ก ์ฐ๊ฒฐํด ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ์
๋๋ค. ์ญ์ ์ ์ฝ์
์ O(1)์ ์๊ฐ๋ณต์ก๋๊ฐ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์(์ํ๋ ๋
ธ๋๊น์ง์ ํ์์๊ฐ ์ ์ธ) ๋น๋ฒํ๊ฒ ์ฝ์
๊ณผ ์ญ์ ๊ฐ ํ์ํ ์ํฉ์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์ง๋ง ๋์์ ๋ฐฐ์ด์ฒ๋ผ ์ธ๋ฑ์ค๋ฅผ ํตํ Random Access๊ฐ ๋ถ๊ฐ๋ฅํ๊ณ , ์ฒ์๋ถํฐ ์ํ๋ ๋ฐ์ดํฐ๊ฐ ๋์ฌ ๋๊น์ง ํ์์ ์งํํด์ผํ๊ธฐ ๋๋ฌธ์ ํ์์๋ O(N)์ ์๊ฐ๋ณต์ก๋๊ฐ ์๊ตฌ๋๋ค๋ ๋จ์ ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํฌ์ธํฐ ๊ธฐ๋ฐ์ด๋ผ ๋๋ฒ๊น
์ด ์ด๋ ค์์ใ
๋ผ๋ ๋ง๋ค๊ธฐ Node ๋จผ์ ๋ฐ์ดํฐ๋ฅผ ์ค์ ๋ก ์ ์ฅํ๊ณ , ๋ค์ ๋
ธ๋์ ์ฐธ์กฐ๊ฐ์ ์ ์ฅํ ๋
ธ๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ์ํฉ์๋ค! import Foundation class Node { let i..
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 1: ์คํ(Stack)
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 1: ์คํ(Stack)
2021.12.12์คํ (Stack) ์คํ์ LIFO(Last In First Out)์ ํน์ง์ ๊ฐ์ง๋ ์๋ฃ๊ตฌ์กฐ์
๋๋ค. ์คํ์ ์๋ฃ๋ฅผ ์ ์ฅํ ๋, ๋จผ์ ๋ฃ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋ง์ง๋ง์ ๊บผ๋ด๊ฒ ๋ฉ๋๋ค. ์ค์ํํธ์ ๋ฐฐ์ด์ ์คํ๊ณผ ๋์ผํ append, removeLast ๋ฉ์๋๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ํ ๋ฒ ๊ฐ์ธ์ฃผ๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋ฉด ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ๋ผ๋ ๋ง๋ค๊ธฐ struct Stack { var elements: [T] = [] var count : Int { return elements.count } var isEmpty : Bool { return elements.isEmpty } } ๋จผ์ , ์ ๋ค๋ฆญ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์๋ ๋ฐฐ์ด ํ๋๋ฅผ ๋ง๋ค์ด์ค๋๋ค. ์คํ์ ๋ด๊ธด ๋ฐ์ดํฐ์ ๊ฐ์์ ์คํ์ด ๋น์ด์๋์ง ์ฌ๋ถ๋ ์ค์ํํธ์..
[์ค์ํํธ ๋์์ธํจํด] ํ/์ญ ํจํด(Publisher/Subscriber Pattern)
[์ค์ํํธ ๋์์ธํจํด] ํ/์ญ ํจํด(Publisher/Subscriber Pattern)
2021.09.12๋ฐํ/๊ตฌ๋
ํจํด (ํ์ญ/pubsub ํจํด์ด๋ผ๊ณ ํ๋๋ผ..) ์ง๋ ํฌ์คํธ์์ ์ต์ ๋ฒ ํจํด์ ๋ํด ์ ๋ฆฌํด๋ดค๋๋ฐ์, ์ต์ ๋ฒ ํจํด๊ณผ ์ ์ฌํ์ง๋ง ๋ ์ ์ฐํ ๊ตฌ์กฐ๋ฅผ ์ง๋ ํ/์ญ ํจํด์ผ๋ก ๋ถ๋ฆฌ๋ ๋ฐํ/๊ตฌ๋
ํจํด์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ ๋ฒ ํจํด๊ณผ ๋น์ทํ๊ธฐ ๋๋ฌธ์ ํฌ๊ฒ ์ค๋ช
ํ ๋ด์ฉ์ ์์ด ๋ณด์ฌ์! ์ต์ ๋ฒ ํจํด์ด ์์ง ๋ฏ์ค๋ค๋ฉด ์ด ํฌ์คํธ๋ฅผ ๋จผ์ ์ฝ์ด์ฃผ์ธ์! ์ต์ ๋ฒ ํจํด๊ณผ ๋ฌด์์ด ๋ค๋ฅธ๊ฐ์? ์ต์ ๋ฒ ํจํด์ฒ๋ผ ํ์ญ ํจํด๋ ์ด๋ค ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค๋ Subject ๊ฐ์ฒด์, ๊ทธ ์ด๋ฒคํธ์ ๋ํ ์๋ฆผ์ ๋ฐ๊ธฐ ์ํด Subject๋ฅผ ๊ด์ฐฐํ๋ Observer ๊ฐ์ฒด๊ฐ ์กด์ฌํฉ๋๋ค. ํ์ง๋ง ์ค๊ฐ์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ธ๋ก์ปค๊ฐ ์กด์ฌํ๋ค๋ ์ ์์ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ์ต์ ๋ฒ ํจํด์ Subject๋ ์์ ์ด ์ง์ Observer๋ค์ ๋ฐ์ ๊ด๋ฆฌํ๊ณ ..
[์ค์ํํธ ๋์์ธํจํด] ์ต์ ๋ฒ ํจํด(Observer Pattern)
[์ค์ํํธ ๋์์ธํจํด] ์ต์ ๋ฒ ํจํด(Observer Pattern)
2021.09.12์ต์ ๋ฒ ํจํด (Observer Pattern) ์ค๋ ์ ๋ฆฌํ ๋์์ธ ํจํด์ ์ต์ ๋ฒ ํจํด์
๋๋ค! ์ต์ ๋ฒ ํจํด์ ํ๋ ํจํด ์ค ํ๋๋ก ์ด๋ค ๊ฐ์ฒด์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ๋ฅผ ํด๋น ๊ฐ์ฒด๋ฅผ ๊ด์ฐฐํ๊ณ ์๋ ๊ฐ์ฒด์๊ฒ ์๋ฆฌ๋ ๋ฐฉ์์ผ๋ก ์ด์๋๋ ํจํด์
๋๋ค. ์๋ฆผ์ ์ฃผ์ฒด๊ฐ ๋๋ ๊ฐ์ฒด(Subject)๋ ์์ ์ ๊ด์ฐฐํ๋ ๊ฐ์ฒด(Observer)๋ค๊ณผ ์ผ๋๋ค ๊ด๊ณ๋ฅผ ๋งบ์ ์ ์์ต๋๋ค. ์ ์จ์ผํ ๊น? ์ต์ ๋ฒ ํจํด์ ๊ฐ๋ ฅํจ์ ๋ ๊ฐ์ฒด๊ฐ ์๋ก ๋์จํ๊ฒ ์ฐ๊ฒฐ(Loose Coupling)๋๋ค๋ ์ ์ ์์ต๋๋ค. ๋์จํ๊ฒ ์ฐ๊ฒฐ๋๋ค๋ ๊ฒ์ ๋ ์ฐ๊ฒฐ๋ ๊ฐ์ฒด๋ค ์ฌ์ด์ ๊ฒฐํฉ๋๊ฐ ๋ฎ๋ค๋ ๊ฒ์ ์๋ฏธํ๊ณ , ์๋ก๊ฐ ์๋ก์ ๋ํ ์ต์ํ์ ์ ๋ณด๋ง์ ๊ฐ์ง๊ณ ์ํตํ๋ค๋ ๊ฒ์ ๋งํฉ๋๋ค. ๋ง๋ค์ด๋ณด๊ธฐ ๊ฐ์์ ์๋๋ฆฌ์ค๋ก ์ฐ์์ธ๊ณผ ๊ทธ ์ฐ์์ธ์ ํ๋ก์ฐํ๋ ์ฌ๋๋ค์ด ์๋ค๊ณ ํ๊ณ , ์ฐ..
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ํธ๋์ญ์
(Transaction)
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ํธ๋์ญ์ (Transaction)
2021.09.05ํธ๋์ญ์
(Transaction) ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ผ๋ฐ์ ์ผ๋ก ํ์ฌ๋์ด ์ฌ์ฉํ์ง ์์ต๋๋ค. ์๋ง์ ์ฟผ๋ฆฌ๋ค์ด ๋์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ฌ๋ฉ๋๋ค. ์ด๋ ๋ชจ๋ ์ฟผ๋ฆฌ๋ค์ ๋ณํ์ฒ๋ฆฌํ๊ฒ ๋๋ค๋ฉด, ํจ์จ์ฑ์ ์ข์ ์ ์์ง๋ง ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ฌ์ง๊ฐ ์์ต๋๋ค. ๋ง์ฝ ์ด๋ค ์ฟผ๋ฆฌ๊ฐ ํ
์ด๋ธ์ ์
๋ฐ์ดํธํ๊ฒ ๋๋ค๋ฉด, ์ฒ์ ์๋ํ๋ ๊ฒ๊ณผ๋ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉ์๊ฐ ๋ฐ๊ฒ ๋ ์๋ ์์ต๋๋ค. ํน์ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋๋ค๋ฉด ์ญ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํ๋ ค๊ณ ํ ์๋ ์์ฃ . ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์์
์ฒ๋ฆฌ๋ฅผ ์ํ ์ฐ์ฐ๋ค์ ๋ฌถ์ด์ ํ๋์ ๋จ์๋ก ๋ํ๋
๋๋ค. ์ด ๋จ์๋ฅผ ํธ๋์ญ์
์ด๋ผ๊ณ ๋ถ๋ฆ
๋๋ค. ํธ๋์ญ์
์ ํฌํจ๋ ์ฐ์ฐ์ ๋ชจ๋ ํ๋ฒ์ ์๋ฃ๋์ด์ผ ํฉ๋๋ค. MySQL์์๋ ์ฐ๋ฆฌ๊ฐ ์์ฑํ๋ ์ฟผ๋ฆฌ์ ๋ช
์์ ์ผ๋ก ํธ๋์ญ์
์ด ๊ธฐ์ฌ๋์ด..
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ์กฐ์ธ์ฐ์ฐ(Join Operation)
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ์กฐ์ธ์ฐ์ฐ(Join Operation)
2021.09.05Join ์กฐ์ธ์ ๋ค์์ ํ
์ด๋ธ์ ์ฐ๊ฒฐํด์ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์๋ด๋ ์ฐ์ฐ์ ์๋ฏธํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก Join ์ ์ ๊ทํ๋ ํ
์ด๋ธ์ ์ฌ์ฉํ๊ฒ ๋๊ณ ์ฌ๋ฌ ์ข
๋ฅ์ ์กฐ์ธ์ฐ์ฐ๋ค์ ์ ๋ฆฌํด๋ด
์๋ค. Natural Join Natural ์ ๋ ํ
์ด๋ธ์์ ๊ฐ์ ์์ฑ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ํ
์ด๋ธ์ ํฉ์ณ์ ์๋ก์ด ํ
์ด๋ธ์ ๋ง๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋ณต๋๋ ์์ฑ๋ค์ ํฉ์ณ์ ํ๋๋ก ๋ง๋ญ๋๋ค. students_info student_id student_name age sex 1 ์ฌํ 26 M 2 ์ค์ด 24 F 3 ํ๊ธฐ 21 M students_department student_id Department 1 CSEE 2 CPSW 3 CSEE ์์ ๊ฐ์ ๋ ํ
์ด๋ธ์ด ์๋ค๋ฉด, Natural Join์ ํ์ ๋, student_id ๋ฅผ ๊ธฐ์ค์ผ๋ก ํฉ..
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ํค(Keys)
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ํค(Keys)
2021.09.05Keys ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํค๋ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ํน์ ํ๋ ์์ฑ์ ์งํฉ์ ์๋ฏธํฉ๋๋ค. ์ฌ๋ฌ ์ข
๋ฅ์ ํค๋ค์ด ์๊ณ , ํฌํจ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์์ด ๋จ๊ณ๋ณ๋ก ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ์ํผ ํค(Super Key) ์ํผ ํค(Super Key)๋ ํ
์ด๋ธ ๋ด์ ํน์ ํ ํํ์ ์๋ณํ ์ ์๊ฒ ํ๋ ์์ฑ๋ค์ ์งํฉ์ ์๋ฏธํฉ๋๋ค. ์งํฉ์ด๊ธฐ ๋๋ฌธ์ ์์ฑ์ ํ๋๋ง ์์ ์๋ ์๊ณ , ๋ค์ ์กด์ฌํ ์๋ ์์ต๋๋ค. ์ํผ ํค๋ ํญ์ ์ ์ผ์ฑ(uniquness) ๋ฅผ ๋ง์กฑํด์ผ ํ๋๋ฐ, ์ ์ผ์ฑ์ด๋ ์ด ํค ๊ฐ์ ํตํด ํํ์ ์๋ณํ ์ ์์์ ์๋ฏธํฉ๋๋ค. student_id student_name age sex ์์ ๊ฐ์ ํ
์ด๋ธ์ ์์ฑ๋ค์ด ์๋ค๊ณ ํ ๋, student_id ํ๋๋ง์ผ๋ก ํน์ ํํ์ ์๋ณํ ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด student_id๋ฅผ ํฌํจํ๋ ๋ค..
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ์ ๊ทํ(Normalization)
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ์ ๊ทํ(Normalization)
2021.09.05์ ๊ทํ(Normalization) ์ง๋ ํฌ์คํธ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ํ๋ ์ด์ ํ์, ๊ทธ๋ฆฌ๊ณ ํจ์์ ์ข
์์ ๋ํด ์ ๋ฆฌํ์ต๋๋ค. ์ค๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด์ ํ์์ ํด๊ฒฐํ๋ ํ์ค์ธ ์ ๊ทํ(Normalization)๋ฅผ ์ ๋ฆฌํด๋ด
์๋ค. ์ ๊ทํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ๋ค์ด ์๋ก ์ด์ ํ์์ ๋ง๋ค์ง ์๋๋ก ํ๊ธฐ ์ํด ํ
์ด๋ธ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ ๋งํฉ๋๋ค. 1NF ๋ถํฐ 6NF, ๊ทธ๋ฆฌ๊ณ BCNF ๊ฐ ์์ง๋ง ์ด ํฌ์คํธ์์๋ 1NF ~ 3NF ๊ทธ๋ฆฌ๊ณ BCNF์ ๋ํด ์ ๋ฆฌํ๋๋ก ํ๊ฒ ์ต๋๋ค. 1NF(First Normal Form) ๐ก ํ
์ด๋ธ์ ๋ชจ๋ ์์ฑ์ด atomic value์ด์ด์ผ ํ๋ค. ์ 1 ์ ๊ทํ์ ๊ท์น์ ๋จ์ํฉ๋๋ค. ์ฌ๊ธฐ์ atomic value๋ ๋ ์ด์ ์ชผ๊ฐ์ง ์ ์๋ ๊ฐ์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ์ ๋ง ๋จ์ํ๊ฒ ๊ฐ ์์ฑ์ด..
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ์ด์ ํ์(Anomaly)
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ์ด์ ํ์(Anomaly)
2021.09.05์ด์ ํ์(Anomaly) Anomaly๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์์ ๋ฐ์ํ๊ฒ ๋๋ ์ด์ ํ์์ ์๋ฏธํฉ๋๋ค. Anomaly๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์กด์ฌํ๋ฉด ๊ทธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ด ๋ณด์ฅ๋์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ด์ฃ . Anomaly์ ์ข
๋ฅ์ ๊ทธ ์ํ์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. Deletion Anomaly (์ญ์ ์ด์) ์ญ์ ์ด์์ ํ
์ด๋ธ์์ ์ด๋ค ๊ฐ์ ์ญ์ ํ๊ธฐ ์ํด ํํ์ ์ญ์ ํ๊ฒ ๋๋ฉด ํด๋น ํํ ์์ ์๋ ๋ชจ๋ ์ ๋ณด๊ฐ ํจ๊ป ์ญ์ ๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๋ฌธ์ ์
๋๋ค. student_id student_name department course_id grade 1 ์ฌํ ์ ์ 1 A+ 1 ์ฌํ ์ ์ 2 A+ 1 ์ฌํ ์ ์ 3 A+ 2 ์ค์ด ์์ฌ 3 A+ ์ค์ด๊ฐ course_id ๊ฐ 3์ธ ์์
์ ์ฒ ํํ๋ค๊ณ ํฉ์๋ค. ๊ทน๋จ์ ์ด์ง๋ง ์..
[์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ] ๊ธฐ์์ ๋ ฌ(Radix Sort)
[์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ] ๊ธฐ์์ ๋ ฌ(Radix Sort)
2021.07.18๊ธฐ์ ์ ๋ ฌ, Radix Sort ๊ธฐ์ ์ ๋ ฌ์ ๊ณ์ ์ ๋ ฌ(Counting Sort) ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋น๊ต์ฐ์ฐ์ ์ํํ์ง ์์ ์กฐ๊ฑด์ด ๋ง๋ ์ํฉ์์ ๋น ๋ฅธ ์ ๋ ฌ ์๋๋ฅผ ๋ณด์ฅํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ ์ฒด์ ์ธ ์ปจ์
์ ๋ฐ์ดํฐ์ ๊ฐ ์๋ฆฟ์๋ฅผ ๋ฎ์ ์๋ฆฌ์์์๋ถํฐ ๊ฐ์ฅ ํฐ ์๋ฆฌ์๊น์ง ์ฌ๋ผ๊ฐ๋ฉด์ ์ ๋ ฌ์ ์ํํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ์ด์ ๋๋ฌธ์ ์๋ฆฟ์๊ฐ ์กด์ฌํ์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์์ ๋ ฌ๋ก ์ ๋ ฌํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค. Algorithm Concept ๊ธฐ์ ์ ๋ ฌ์ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์ณ์ ์ ๋ ฌ์ ์ํํ๋ค. ์๋ฅผ ๋ค์ด, ํ์ฌ ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ ์ค ๊ฐ์ฅ ํฐ ์๋ฆฟ์๊ฐ 100์ ์๋ฆฌ๋ผ๊ณ ํด๋ณด์. ๊ฐ ๋ฐ์ดํฐ๋ค์ 1์ ์๋ฆฌ๋ฅผ ๋น๊ตํด์ ๊ฐ์ ๋ฐ์ดํฐ๋ผ๋ฆฌ ๋ชจ์๋ค. 1์ ์๋ฆฌ๊ฐ ์์ ๋ฐ์ดํฐ๋ค์ด ์์ ์์นํ๊ฒ ๋๊ณ ํฐ ์ซ์๋ค์ด ๋ค์ ์์นํ๊ฒ ๋๋ค.(์ค..