Algorithm) Floyd-Warshall(ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ) ์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ(Floyd-Warshall)์€ ๋ชจ๋“  ์ง€์ ์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ์ง€์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๋ชจ๋‘ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋งค๋ฒˆ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ ์ค‘์—์„œ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ–๋Š” ๋…ธ๋“œ๋ฅผ ์ฐพ์„ ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์ ์ด ๋‹ค์ต์ŠคํŠธ๋ผ์™€ ๋‹ค๋ฅธ ์ ์ด๋‹ค. ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๊ฐ€ n ๊ฐœ์ผ๋•Œ n ๋ฒˆ์˜ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ๋‹จ๊ณ„๋งˆ๋‹ค O(N²) ์˜ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ํ˜„์žฌ ๋…ธ๋“œ๋ฅผ ๊ฑฐ์ณ๊ฐ€๋Š” ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ๊ณ ๋ คํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N³)์ด๋‹ค. ์ฆ‰, ๋ชจ๋“  ์ง€์ ์„ ์‹œ์ž‘์œผ๋กœ ์‚ผ๊ณ  ๋ชจ๋“  ์ง€์ ์— ๋Œ€ํ•ด์„œ ๋์œผ๋กœ ์‚ผ์•„์„œ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š”๋ฐ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๊ฒฝ์œ ์ง€๋กœ ์‚ผ๋Š” ๊ณผ์ •์ธ n ๋ฒˆ์˜ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ ํ•œ๋‹ค. min(์‹œ์ž‘ → ๋, ์‹œ์ž‘ → ๊ฒฝ์œ  + ๊ฒฝ์œ  → ๋) ๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ถœ๋ฐœ ๋…ธ๋“œ๊ฐ€ 1๊ฐœ์ด๋ฏ€๋กœ ๋‹ค๋ฅธ ๋ชจ๋“  ๋…ธ..

Algorithm 2022. 8. 31. 17:05
์˜ค๋Š˜๋„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•ˆ ๋œ๋‹ค๊ณ  ๋งํ–ˆ๋‹ค(3)

โœ… iOS + ์•ˆ๋“œ๋กœ์ด๋“œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ ๊ฐœ๋ฐœ์ž iOS ์™€ ์•ˆ๋“œ๋กœ์ด๋“œ๋ฅผ ๋™์‹œ์— ๊ฐœ๋ฐœํ•˜์—ฌ ๊ฐ๊ฐ์˜ ์•ฑ์Šคํ† ์–ด์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ ๊ฐœ๋ฐœ ๋ฐฉ์‹ 1๏ธโƒฃ ์›น๋ทฐ ํŒจํ‚ค์ง• ๋ฐฉ์‹ ๋ชจ๋ฐ”์ผ ์›น์„ ๊ฐœ๋ฐœํ•˜๊ณ  iOS ์™€ ์•ˆ๋“œ๋กœ์ด๋“œ ์›น๋ทฐ UI ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์žฅ์ : ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ์ ๊ณ , ๋‹ค๋ฅธ OS ์—์„œ ๊ฐ™์€ ์›น ๋ธŒ๋ผ์šฐ์ € ์—”์ง„(WebKit)์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ ๊ฒฝํ—˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, ์ผ๋ฐ˜ ๋ชจ๋ฐ”์ผ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ๋„ ๋™์ผํ•˜๊ฒŒ ๋ณด์ธ๋‹ค. ๋‹จ์ : UI ์ •๋ณด๋ฅผ ์›น ์„œ๋ฒ„์—์„œ ๋””์ž์ธ ์†Œ์Šค๋ฅผ ์š”์ฒญํ•˜์—ฌ ๋ณด์—ฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋„ค์ดํ‹ฐ๋ธŒ๋ณด๋‹ค ๋А๋ฆฌ๋‹ค. UI ์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ชจ์…˜๋„ ๋„ค์ดํ‹ฐ๋ธŒ๋ณด๋‹ค ์ž์—ฐ์Šค๋Ÿฝ์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ๋ธ”๋ฃจํˆฌ์Šค, ์™€์ดํŒŒ์ด, ์นด๋ฉ”๋ผ, NFC, GPS, ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ๋“ฑ ๋””๋ฐ”์ด์Šค ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋งค์šฐ ํž˜๋“ค..

iOS) Dependency Injection(์˜์กด์„ฑ ์ฃผ์ž…)

โœ… ์˜์กด์„ฑ ์ฃผ์ž…(Dependency Injection) ์˜์กด์„ฑ ์ฃผ์ž…์ด๋ž€ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์˜ ์˜์กด์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์˜์กด์„ฑ ๊ทธ๋ ‡๋‹ค๋ฉด ์˜์กด์„ฑ์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ? ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด ์‚ฌ์ด์— ์˜์กด ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋•Œ ์˜์กดํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ์ˆ˜์ •๋˜๋ฉด ๋‹ค๋ฅธ ๊ฐ์ฒด๋„ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์ฃผ์ž… ๊ทธ๋ ‡๋‹ค๋ฉด ์ฃผ์ž…์€ ๋ฌด์—‡์ผ๊นŒ? ์ฃผ์ž…์€ ์™ธ๋ถ€์—์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋„ฃ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์™ธ๋ถ€์—์„œ ๊ฐ์ฒด๋ฅผ ์ฃผ์ž…ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑ์ž ๋“ฑ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์˜์กด์„ฑ์„ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ ์˜์กด์„ฑ ์ฃผ์ž…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์˜์กด์„ฑ ์ฃผ์ž…์ด ๋ญ”๋ฐ? ์•„๋งˆ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ๋“ค์„๋•Œ ๊ฐ์ด ์™”์„ ์ˆ˜ ์žˆ๋‹ค. ์˜์กด์„ฑ์œผ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฒƒ์€ ์–ด๋–ค ์ˆ˜์ •์‚ฌํ•ญ์ด ์žˆ์„ ๋•Œ ๋งค๋ฒˆ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ˆ˜์ •ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹๊นŒ? ์ง์ž‘ํ•œ๋Œ€๋กœ ์˜์กด์„ฑ์„ ๊ฐ€์ง„ ์ฝ”๋“œ๊ฐ€ ๋งŽ๋‹ค๋ฉด ..

iOS 2022. 8. 28. 23:40
iOS) ์ ‘๊ทผ์ œ์–ด(Access Control)

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์—์„œ ์€๋‹‰ํ™”๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ธ ์ ‘๊ทผ์ œ์–ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ๋“ค์–ด๊ฐ€๊ธฐ ์ „ ์€๋‹‰ํ™”ํ•˜๋‹ˆ๊นŒ ์ƒ๊ฐ์ด ๋‚ฌ๋Š”๋ฐ ์บก์Аํ™”๋ž‘ ๋ฌด์—‡์ด ๋‹ค๋ฅผ๊นŒ? ๋ชจ๋“ˆ๊ณผ ์†Œ์ŠคํŒŒ์ผ์€ ๋ฌด์—‡์ผ๊นŒ? โœ… ์€๋‹‰ํ™”? ์บก์Аํ™”? ์€๋‹‰ํ™”(hiding) : ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ์™€ ์—ฐ์‚ฐ์„ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์€๋‹‰(hiding) ํ˜น์€ ๊ฒฉ๋ฆฌ(isolation)์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ์ฒด ์™ธ๋ถ€์—์„œ ๊ฐ์ฒด๋‚ด์˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์„ ์ œํ•œํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •, ์กฐ์ž‘ํ•˜๋Š” ๋™์ž‘์€ ๋‚ด๋ถ€์— ๋‘๊ณ  ์ ‘๊ทผ(getter),์„ค์ •(setter)ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๋Š”๋‹ค. ์บก์Аํ™”(encapsulation) ์บก์А ์•Œ์•ฝ์— ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฐ๊ด€์žˆ๋Š” ์•ฝํšจ๋ฅผ ๊ฐ€์ง„ ์•ฝ๋ผ๋ฆฌ ๋ชจ์—ฌ์žˆ๊ณ  ๊ฐ์‹ธ์„œ ์™ธ๋ถ€์—์„œ ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค. ์ฆ‰, ์—ฐ๊ด€ ์žˆ๋Š” ๋ณ€์ˆ˜์™€ ํ•จ..

iOS 2022. 8. 27. 02:48
Objective-C) ์ „์ฒ˜๋ฆฌ๊ธฐ

๋ณธ ํฌ์ŠคํŒ…์€ ‘ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ค๋ธŒ์ ํ‹ฐ๋ธŒ-C 2.0’ ์„ ์ฝ์œผ๋ฉฐ ์‹ค์Šตํ•œ ์ฝ”๋“œ์™€ ๋‚ด์šฉ, ์ถ”๊ฐ€์ ์œผ๋กœ ๊ถ๊ธˆํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋‚ด์šฉ ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์•Œ์•„๋ณด์ž. #define ๋ช…๋ น๋ฌธ #import ๋ช…๋ น๋ฌธ ์กฐ๊ฑด ์ปดํŒŒ์ผ(#ifdef, #if, #elif, #else, #endif, #ifndef, #undef) ์ „์ฒ˜๋ฆฌ๊ธฐ๋Š” ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์— ์‚ฐ์žฌํ•œ ํŠน๋ณ„ํ•œ ๋ช…๋ น๋ฌธ์„ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ „์ฒ˜๋ฆฌ ๋ช…๋ น๋ฌธ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ƒต(#)์„ ์ค„์˜ ๋งจ ์•ž์— ๋ถ™์—ฌ์•ผ ํ•œ๋‹ค. โœ… #define ๋ช…๋ น๋ฌธ #define ๋ฌธ์˜ ์ฃผ ์šฉ๋„๋Š” ์ƒ์ˆ˜์— ์‹ฌ๋ฒŒ๋ช…์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‹ค์Œ์˜ ์ „์ฒ˜๋ฆฌ ๋ช…๋ น๋ฌธ์€ TRUE ๋ผ๋Š” ์ด๋ฆ„์ด ๊ฐ’ 1๊ณผ ๋™์ผํ•˜๋„๋ก ์ •์˜ํ•˜๊ณ , FALSE ๋ผ๋Š” ์ด๋ฆ„์ด ๊ฐ’ 0๊ณผ ๋™์ผํ•˜๋„๋ก ์ •์˜ํ•œ๋‹ค. #define TRUE 1 #define ..

Objective-C 2022. 8. 26. 00:02
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
ยซ   2025/11   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
๋งํฌ
Total
Today
Yesterday