๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ381

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ด์ง„ ํƒ์ƒ‰(Binary Search) ์ˆœ์ฐจ ํƒ์ƒ‰(Sequential Search) ๋ฆฌ์ŠคํŠธ ์•ˆ์— ์žˆ๋Š” ํŠน์ •ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์•ž์—์„œ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ฐจ๋ก€๋Œ€๋กœ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ• ์ •๋ ฌ ์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด ๊ฐ€์žฅ ์•ž์—์„œ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ํ™•์ธ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฆฌ์ŠคํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ ๋ฆฌ์ŠคํŠธ ๋‚ด์— ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋ฌด๋ฆฌ ๋งŽ์•„๋„ ์‹œ๊ฐ„๋งŒ ์ถฉ๋ถ„ํ•˜๋‹ค๋ฉด ํ•ญ์ƒ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Œ ์‹œ๊ฐ„ ๋ณต์žก๋„ → O(N) ์ด์ง„ ํƒ์ƒ‰(Binary Search) ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ์ ˆ๋ฐ˜์”ฉ ์ขํ˜€๊ฐ€๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ ์ฐพ์œผ๋ ค๋Š” ๋ฐ์ดํ„ฐ์™€ ์ค‘๊ฐ„์  ์œ„์น˜์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋น„๊ตํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ์ƒ‰ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์‹œ์ž‘์ , ๋์ , ์ค‘๊ฐ„์  3๊ฐœ์˜ ๋ณ€์ˆ˜ ์‚ฌ์šฉ ๋ฐฐ์—ด ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋˜์–ด ์žˆ์–ด์•ผ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์‹œ๊ฐ„ ๋ณต์žก๋„ → O(logN) ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ ๋”๋ณด๊ธฐ ํŠธ๋ฆฌ(Tree) ๊ตฌ์กฐ ๋…ธ๋“œ์™€ ๋…ธ๋“œ์˜ ์—ฐ.. 2022. 3. 25.
[UIKit] UIApplication UIApplication iOS์—์„œ ์‹คํ–‰๋˜๋Š” ์•ฑ์˜ ์ œ์–ด์™€ ์กฐ์ •์˜ ์ค‘์‹ฌ์  ์„ ์–ธ @MainActor class UIApplication : UIResponder ๋ชจ๋“  iOS ์•ฑ์—๋Š” ๋‹จ ํ•˜๋‚˜์˜ UIApplication ์ธ์Šคํ„ด์Šค๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์ด ์‹œ์ž‘๋˜๋ฉด ์‹œ์Šคํ…œ์€ UIApplicationMain(_: _: _: _:) ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” UIApplication ๊ฐ์ฒด์˜ ์‹ฑ๊ธ€ํ„ด์„ ์ƒ์„ฑํ•˜๋Š” ์ž‘์—…์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋‹ค์Œ shared ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด ์‹ฑ๊ธ€ํ„ด ๊ฐ์ฒด์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. application ๊ฐ์ฒด์˜ ์ฃผ์š” ์—ญํ• ์€ ์‚ฌ์šฉ์ž ์ด๋ฒคํŠธ๋กœ๋ถ€ํ„ฐ์˜ ์ดˆ๊ธฐ ๋ผ์šฐํŒ…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. application ๊ฐ์ฒด๋Š” UIControl ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์ธ control๊ฐ์ฒด๊ฐ€ ์ „๋‹ฌํ•œ action ๋ฉ”์‹œ์ง€๋ฅผ target.. 2022. 3. 24.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ(Sorting) ์ •๋ ฌ(Sorting) ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ •ํ•œ ๊ธฐ์ค€์— ๋”ฐ๋ผ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์„ ํƒ ์ •๋ ฌ(Selection Sort) ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ์„ ์„ ํƒํ•ด ๋งจ ์•ž์œผ๋กœ ๋ณด๋‚ธ๋‹ค. ๋‹ค๋ฅธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์— ๋น„ํ•ด ๋น„ํšจ์œจ์ ์ด๋‹ค. → ์‹œ๊ฐ„ ๋ณต์žก๋„: O(N^2) ์‚ฝ์ž… ์ •๋ ฌ(Insertion Sort) ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‹ˆ์”ฉ ํ™•์ธํ•˜๋ฉฐ, ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ ์ ˆํ•œ ์œ„์น˜์— ์‚ฝ์ž…ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฑฐ์˜ ์ •๋ ฌ๋˜์–ด ์žˆ์„ ๋•Œ ํšจ์œจ์ ์ด๋‹ค. → ์‹œ๊ฐ„ ๋ณต์žก๋„: O(N^2) ํ€ต ์ •๋ ฌ(Quick Sort) ๊ธฐ์ค€ ๋ฐ์ดํ„ฐ๋ฅผ ์„ค์ •ํ•˜๊ณ , ๊ทธ ๊ธฐ์ค€๋ณด๋‹ค ํฐ ๋ฐ์ดํ„ฐ์™€ ์ž‘์€ ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ ๋ฐ”๊พผ๋‹ค. ํ”ผ๋ฒ—(Pivot): ๊ธฐ์ค€ ๋ฐ์ดํ„ฐ → ํ‰๊ท  ์‹œ๊ฐ„ ๋ณต์žก๋„: O(NlogN) ๊ณ„์ˆ˜ ์ •๋ ฌ(Count Sort) ๊ฐ€์žฅ ์ž‘์€ ๋ฐ์ดํ„ฐ๋ถ€ํ„ฐ ๊ฐ€์žฅ ํฐ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ๋ชจ๋‘ ๋‹ด๊ธธ .. 2022. 3. 24.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] DFS/ BFS ํƒ์ƒ‰(Search): ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ๊ณผ์ • ๊ทธ๋ž˜ํ”„, ํŠธ๋ฆฌ ๋“ฑ์˜ ์ž๋ฃŒ๊ตฌ์กฐ ์•ˆ์—์„œ ํƒ์ƒ‰ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ์ฃผ๋กœ ๋‹ค๋ฃฌ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ DFS์™€ BFS๊ฐ€ ์žˆ๋‹ค. ๋‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ ๋”๋ณด๊ธฐ ์ž๋ฃŒ๊ตฌ์กฐ(Data Struture): ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ ์Šคํƒ๊ณผ ํ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ธฐ์ดˆ ๊ฐœ๋…์œผ๋กœ ๋‹ค์Œ ๋‘ ํ•ต์‹ฌ ํ•จ์ˆ˜๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์‚ฝ์ž…(Push): ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž… ์‚ญ์ œ(Pop): ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ(Overflow): ํŠน์ • ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ๋„˜์€ ์ƒํƒœ์—์„œ ์‚ฝ์ž… ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋ฐœ์ƒ ์–ธ๋”ํ”Œ๋กœ์šฐ(Underflow): ํŠน์ • ์ž๋ฃŒ๊ตฌ์กฐ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์žˆ์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ์‚ญ์ œ ์—ฐ์‚ฐ ์ˆ˜ํ–‰ ์‹œ ๋ฐœ์ƒ ์Šคํƒ(Stack): ๋ฐ์ดํ„ฐ.. 2022. 3. 23.
[UIKit] ์•ฑ์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด ์•ฑ์€ ํ˜„์žฌ ์ƒํƒœ์— ๋”ฐ๋ผ์„œ ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…๊ณผ ํ•  ์ˆ˜ ์—†๋Š” ์ž‘์—…์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์•ฑ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€ํ™”ํ•  ๋•Œ๋งˆ๋‹ค ์•ฑ์˜ ๋™์ž‘์„ ์ ์ ˆํ•˜๊ฒŒ ์กฐ์ ˆํ•ด์ฃผ์–ด์•ผ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. UIKit์€ delegate ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ ์ ˆํžˆ ํ˜ธ์ถœํ•˜์—ฌ ์•ฑ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€ํ™”ํ–ˆ์Œ์„ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. Scene ๊ธฐ๋ฐ˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด ์ด๋ฒคํŠธ์— ๋Œ€์‘ Scene์„ ์ง€์›ํ•˜๋Š” ์•ฑ์—์„œ UIKit์€ ๋ผ์ดํ”„ ์‚ฌ์ดํด ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. Scene: ๊ธฐ๊ธฐ์—์„œ ์‹คํ–‰๋˜๋Š” ์•ฑ UI์˜ ์ธ์Šคํ„ด์Šค ํ•˜๋‚˜ ์‚ฌ์šฉ์ž๋Š” ๊ฐ ์•ฑ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ scene์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ๊ฐ์˜ scene์„ ๋…๋ฆฝ์ ์œผ๋กœ ์ˆจ๊ธฐ๊ฑฐ๋‚˜ ๋ณด์ด๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ scene์€ ๊ณ ์œ ์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ ๋‹ค๋ฅธ ์‹คํ–‰ ์ƒํƒœ์— ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Scene์€ ๊ธฐ๋ณธ .. 2022. 3. 22.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ตฌํ˜„(Implementation) ๊ตฌํ˜„(Implementation)์ด๋ž€ ๋จธ๋ฆฟ์†์— ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์†Œ์Šค์ฝ”๋“œ๋กœ ๋ฐ”๊พธ๋Š” ๊ณผ์ •์ด๋‹ค. ๊ตฌํ˜„ ๋ฌธ์ œ ์œ ํ˜•์€ ๋ชจ๋“  ๋ฒ”์œ„์˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ฌธ์ œ ์œ ํ˜•์„ ํฌํ•จํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค. ๊ตฌํ˜„ ์œ ํ˜•์˜ ๋ฌธ์ œ๋Š” ํ’€์ด๋ฅผ ๋– ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์€ ์‰ฝ์ง€๋งŒ ์†Œ์Šค์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ์ด๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฐ„๋‹จํ•œ๋ฐ ์ฝ”๋“œ๊ฐ€ ์ง€๋‚˜์น˜๊ฒŒ ๊ธธ์–ด์ง€๋Š” ๋ฌธ์ œ ํŠน์ • ์†Œ์ˆ˜์  ์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ํŒŒ์‹ฑ ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ ๊ตฌํ˜„ ์‹œ ๊ณ ๋ คํ•ด์•ผ ํ•  ๋ฉ”๋ชจ๋ฆฌ ์ œ์•ฝ ์‚ฌํ•ญ ๋ณ€์ˆ˜์˜ ํ‘œํ˜„ ๋ฒ”์œ„ ๋ฆฌ์ŠคํŠธ(๋ฐฐ์—ด) ํฌ๊ธฐ ์™„์ „ ํƒ์ƒ‰: ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฃผ์ € ์—†์ด ๋‹ค ๊ณ„์‚ฐํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์‹œ๋ฎฌ๋ ˆ์ด์…˜: ๋ฌธ์ œ์—์„œ ์ œ์‹œํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•œ ๋‹จ๊ณ„์”ฉ ์ฐจ๋ก€๋Œ€๋กœ ์ง์ ‘ ์ˆ˜ํ–‰ ๊ตฌํ˜„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ์ƒํ•˜์ขŒ์šฐ ์—ฌํ–‰๊ฐ€ A๋Š” N x N ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜• ๊ณต๊ฐ„ ์œ„์— ์„œ ์žˆ๋‹ค. ์ด ๊ณต๊ฐ„์€ 1 x 1 ํฌ๊ธฐ์˜.. 2022. 3. 22.
๋ฐ˜์‘ํ˜•