๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•

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

[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์œ„ํด๋ฆฌ ์ฑŒ๋ฆฐ์ง€ ๊ต์ ์— ๋ณ„ ๋งŒ๋“ค๊ธฐ  Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ต์ ์— ๋ณ„ ๋งŒ๋“ค๊ธฐ [[2, -1, 4], [-2, -1, 4], [0, -1, 1], [5, -8, -12], [5, 8, 12]] ["....*....", ".........", ".........", "*.......*", ".........", ".........", ".........", ".........", "*.......*"] [[0, 1, -1], [1, 0, -1], [1, 0, 1]] ["*.*"] [[1, -1, 0], [2, -1, 0], [4, - programmers.co.kr Solution ํ•ด๋‹น ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ ๋‘ ์ง์„ (๋ฐฉ์ •์‹)์˜ ๊ต์ ์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์„ ์•„๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ ๋‘ ์ง์„ ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 1. ax + by + c 2. d.. 2021. 12. 14.
[Flutter] Flutter ๋ ˆ์ด์•„์›ƒ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ - 1 (feat. Column,Row,MainAxisAlignment,CrossAlignment) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์ •๋ง ์˜ค๋žœ๋งŒ์— Flutter๋ฅผ ๋‹ค์‹œ ๊ณต๋ถ€ํ•˜๋Š”๋ฐ.. ๋ ˆ์ด์•„์›ƒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด iOS์™€๋Š” ๋‹ฌ๋ผ์„œ.. ํ—ท๊ฐˆ๋ฆฌ๋”๋ผ๊ตฌ์š”. ๊ทธ๋ž˜์„œ ๋ ˆ์ด์•„์›ƒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ธ€์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Column ๋จผ์ € ์ปฌ๋Ÿผ ์œ„์ ฏ๋ถ€ํ„ฐ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ปฌ๋Ÿผ์€ "ํ–‰"์„ ๋œปํ•˜์ฃ ? ์ฆ‰, ์„ธ๋กœ๋กœ ์œ„์ ฏ๋“ค์„ ๋ฐฐ์น˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์œ„์ ฏ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์•„๋ฌด๋Ÿฐ ์˜ต์…˜์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด ์™ผ์ชฝ ์ƒ๋‹จ์— ๋ฐฐ์น˜๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. Column(children: [CircleAvatar(radius: 50.0)]) ์ปฌ๋Ÿผ ์•ˆ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์œ„์ ฏ์„ ๋„ฃ์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์„ธ๋กœ๋กœ ๋ฐฐ์น˜๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. Column(children: [CircleAvatar(radius: 50.0), CircleAvatar(radiu.. 2021. 12. 11.
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์œ„ํด๋ฆฌ ์ฑŒ๋ฆฐ์ง€ ํ”ผ๋กœ๋„ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํ”ผ๋กœ๋„ XX๊ฒŒ์ž„์—๋Š” ํ”ผ๋กœ๋„ ์‹œ์Šคํ…œ(0 ์ด์ƒ์˜ ์ •์ˆ˜๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค)์ด ์žˆ์œผ๋ฉฐ, ์ผ์ • ํ”ผ๋กœ๋„๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋˜์ „์„ ํƒํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, ๊ฐ ๋˜์ „๋งˆ๋‹ค ํƒํ—˜์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ "์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„"์™€ ๋˜ programmers.co.kr Solution ํ•ด๋‹น ๋ฌธ์ œ๋Š” ๋ฐฑํŠธ๋ž˜ํ‚น์œผ๋กœ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. (ํ˜น์‹œ ๋ฐฑํŠธ๋ž˜ํ‚น์„ ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„๋“ค์€ ์—ฌ๊ธฐ ์—์„œ ๋ณด๊ณ  ์™€์ฃผ์„ธ์š”!) answer๋ฅผ 0๋ถ€ํ„ฐ ํƒํ—˜์„ ์‹œ์ž‘ํ•ด์ค๋‹ˆ๋‹ค. func solution(_ k:Int, _ dungeons:[[Int]]) -> Int { var answer:Int = 0 explore(dungeons: dungeons, answer: &answer, k:k, count: 0) return answer } ๋˜์ „๋“ค์„ .. 2021. 12. 10.
[Algorithm] ๋™์  ๊ณ„ํš๋ฒ•(Dynamic Programming)์ด๋ž€? ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ๊ทธ ๋™์•ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋™์  ๊ณ„ํš๋ฒ• ๊ด€๋ จ๋œ ๋ฌธ์ œ๊ฐ€ ๋‚˜์˜ค๋ฉด ์–ด๋ ค์›€์„ ๊ฒช๊ณค ํ–ˆ๋Š”๋ฐ์š”.. ์˜ค๋Š˜์€ ๋™์  ๊ณ„ํš๋ฒ•์— ๋Œ€ํ•ด์„œ ์ œ๋Œ€๋กœ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”! ๋™์  ๊ณ„ํš๋ฒ•(Dynamic Programming)์ด๋ž€? ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ 1950๋…„๋Œ€ ๋ฏธ๊ตญ์˜ ์ˆ˜ํ•™์ž์ธ ๋ฆฌ์ฒ˜๋“œ ๋ฒจ๋งจ์ด ์ตœ์ ํ™” ๋ฌธ์ œ(Optimization Problem)๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ณ ์•ˆ๋˜์—ˆ๋‹ค. ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ๊ฐ„๋‹จํ•œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„์–ด ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•˜๋ฉฐ ์ด๊ฒƒ์€ ๋ถ€๋ถ„ ๋ฌธ์ œ ๋ฐ˜๋ณต๊ณผ ์ตœ์  ๋ถ€๋ถ„ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์— ๋น„ํ•ด ๋”์šฑ ์ ์€ ์‹œ๊ฐ„ ๋‚ด์— ํ’€ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. - ์œ„ํ‚ค ๋ฐฑ๊ณผ - ์ฆ‰, ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๊ฐ™์ด ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘๊ฒŒ ์ชผ๊ฐœ์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ๋‚˜๊ฐ€๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ๋‹ค.. 2021. 12. 9.
[Data Structure] B-Tree๋ž€? ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ ์ค‘ ๊ท ํ˜• ๋ํŒ์™• (์ด๋ฆ„ ์ž์ฒด๊ฐ€ Balanced - Tree)์ธ B-Tree์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ B-Tree์˜ ๋ฐฐ๊ฒฝ B-ํŠธ๋ฆฌ(B-tree)๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ผ์ข…์œผ๋กœ, ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ํ™•์žฅํ•ด ํ•˜๋‚˜์˜ ๋…ธ๋“œ๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ž์‹ ๋…ธ๋“œ์˜ ์ตœ๋Œ€ ์ˆซ์ž๊ฐ€ 2๋ณด๋‹ค ํฐ ํŠธ๋ฆฌ ๊ตฌ์กฐ์ด๋‹ค. - ์œ„ํ‚ค ๋ฐฑ๊ณผ - ์ฆ‰, ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ์กฐ๊ธˆ ๋” ํšจ์œจ์ ์œผ๋กœ ํ™•์žฅํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์—์š”! ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ O(n)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๊ฒƒ์„ ์กฐ๊ธˆ ๋” ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“  ๊ฒƒ์ด O(logn)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š” AVL ํŠธ๋ฆฌ์˜€์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งŒ์•ฝ 2์ฒœ๋งŒ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด log20,000,000 = 24 ์ฆ‰, ์ตœ๋Œ€ 2.. 2021. 12. 6.
[Data Structure] AVL ํŠธ๋ฆฌ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ (feat. Swift) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์ €๋ฒˆ ์‹œ๊ฐ„์— AVL ํŠธ๋ฆฌ๊ฐ€ ๋ญ”์ง€ ์ด๋ก ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋Š”๋ฐ์š”. (ํ˜น์‹œ ์•ˆ๋ณด์‹  ๋ถ„๋“ค์€ ์—ฌ๊ธฐ ์—์„œ ํ™•์ธํ•ด์ฃผ์„ธ์š”!) ์˜ค๋Š˜์€ AVL ํŠธ๋ฆฌ๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ AVLNode ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ์™€ ๋˜‘๊ฐ™์ง€๋งŒ ์™ผ์ชฝ๊ณผ,์˜ค๋ฅธ์ชฝ ์ž์‹์˜ ๋†’์ด์™€ ๋ฐธ๋Ÿฐ์Šค ํŒฉํ„ฐ๋ฅผ ์ธก์ •ํ•  ๋ณ€์ˆ˜๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์—ˆ์Šต๋‹ˆ๋‹ค. class AVLNode { var value:T var leftChild:AVLNode? var rightChild:AVLNode? var height:Int = 0 var leftHeight:Int { return leftChild?.height ?? -1 } var rightHeight:Int { return rightChild?.height ?? -1 } var.. 2021. 12. 6.
[Data Structure] AVL(Adelson-Velsky and Landis) ํŠธ๋ฆฌ๋ž€? ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์ €๋ฒˆ์— ์ •๋ฆฌํ–ˆ๋˜ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ๋” ์—…๊ทธ๋ ˆ์ด๋“œ(?)ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ธ AVL ํŠธ๋ฆฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (ํ˜น์‹œ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์— ๋Œ€ํ•ด ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„๋“ค์€ ์—ฌ๊ธฐ ์—์„œ ๋ณด๊ณ  ์™€์ฃผ์„ธ์š”!) ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ AVL(Adelson-Velsky and Landis) ํŠธ๋ฆฌ๋ž€? ๐Ÿค” ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ AVL ํŠธ๋ฆฌ(๋ฐœ๋ช…์ž์˜ ์ด๋ฆ„์ธ Adelson-Velsky and Landis์—์„œ ๋”ฐ์˜จ ์ด๋ฆ„)๋Š” ์Šค์Šค๋กœ ๊ท ํ˜•์„ ์žก๋Š” ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์ด๋‹ค. ์Šค์Šค๋กœ ๊ท ํ˜•์„ ์žก๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ค‘ ์ฒ˜์Œ์œผ๋กœ ๋ฐœ๋ช…๋˜์—ˆ๋‹ค. AVL ํŠธ๋ฆฌ์—์„œ, ๋‘ ์ž์‹ ์„œ๋ธŒํŠธ๋ฆฌ์˜ ๋†’์ด๋Š” ํ•ญ์ƒ ์ตœ๋Œ€ 1๋งŒํผ ์ฐจ์ด๋‚œ๋‹ค. ๋งŒ์•ฝ ์–ด๋–ค ์‹œ์ ์—์„œ ๋†’์ด ์ฐจ์ด๊ฐ€ 1๋ณด๋‹ค ์ปค์ง€๋ฉด ์ด ์†์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์Šค์Šค๋กœ ๊ท ํ˜•์„ ์žก๋Š”๋‹ค. - ์œ„ํ‚ค ๋ฐฑ๊ณผ - ์ฆ‰, .. 2021. 12. 1.
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ 3 n^2 ๋ฐฐ์—ด ์ž๋ฅด๊ธฐ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - n^2 ๋ฐฐ์—ด ์ž๋ฅด๊ธฐ ์ •์ˆ˜ n, left, right๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ณผ์ •์„ ๊ฑฐ์ณ์„œ 1์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. nํ–‰ n์—ด ํฌ๊ธฐ์˜ ๋น„์–ด์žˆ๋Š” 2์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. i = 1, 2, 3, ..., n์— ๋Œ€ํ•ด์„œ, ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. 1ํ–‰ 1์—ด๋ถ€ programmers.co.kr Solution 1. ๋ฐฐ์—ด์— ์ˆซ์ž๊ฐ€ ์ฑ„์›Œ์ง€๋Š” ๊ทœ์น™์„ ํŒŒ์•…ํ•œ๋‹ค. ๋ฐฐ์—ด์— ์ˆซ์ž๊ฐ€ ์ฑ„์›Œ์ง€๋Š” ๊ทœ์น™์€ iํ–‰์— i๊ฐœ์˜ i๊ฐ€ ์ฑ„์›Œ์ง€๊ณ  ๊ทธ ๋‹ค์Œ i+1๋ถ€ํ„ฐ n๊นŒ์ง€ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด n์ด 10์ด๊ณ  i๊ฐ€ 5๋ผ๋ฉด 5๋ฒˆ์งธ ํ–‰์€ 5๊ฐ€ 5๊ฐœ๊ฐ€ ๋จผ์ € ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค. -> [5,5,5,5,5] ๊ทธ๋ฆฌ๊ณ  6(5+1)๋ถ€ํ„ฐ 10๊นŒ์ง€ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค. -> [5,5,5,5,5,6,7,8,9,10] 2. ์‹œ์ž‘๋˜๋Š” ํ–‰๊ณผ ์—ด, ๋๋‚˜๋Š” .. 2021. 12. 1.
[๐Ÿงฉ Creative Coding] ์ค„์— ๋งค๋‹ฌ๋ ค ํ”๋“ค๋ฆฌ๋Š” ์ƒ์ž ๋งŒ๋“ค๊ธฐ (feat. Interactive Developer) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์ค„์— ๋งค๋‹ฌ๋ ค ํ”๋“ค๋ฆฌ๋Š” ์ƒ์ž๋ฅผ ๋งŒ๋“ค์–ด ๋ณผ๊ฑด๋ฐ์š”. ์ด๊ฑด ์ œ๊ฐ€ ์กด๊ฒฝํ•˜๋Š” ๊ฐœ๋ฐœ์ž์ด๊ธฐ๋„ ํ•œ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๋””๋ฒจ๋กœํผ ๊น€์ข…๋ฏผ๋‹˜์˜ ์œ ํŠœ๋ธŒ ์ฑ„๋„์— ์˜ฌ๋ผ์˜จ ํŠœํ† ๋ฆฌ์–ผ ์ค‘ ํ•˜๋‚˜์ธ๋ฐ์š”. ์˜ˆ์ „๋ถ€ํ„ฐ ์ด๋Ÿฐ ์ฐฝ์˜์ ์ธ ์ฝ”๋”ฉ, ์˜ˆ์ˆ ์ ์ธ ์ฝ”๋”ฉ์„ ํ•˜๊ณ ์‹ถ์€ ์š•์‹ฌ์ด ๋งŽ์•˜์—ˆ๋Š”๋ฐ ์ด๋ฒˆ ๊ธฐํšŒ์— ๊น€์ข…๋ฏผ๋‹˜์„ ๋”ฐ๋ผ์„œ ๊ตฌํ˜„ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์œ„ ์˜์ƒ์„ ๋ณด๋ฉฐ ๋‚˜๋ฆ„ ์ œ ๋ฐฉ์‹๋Œ€๋กœ Swift๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ View ๋จผ์ € ์ƒ์ž์™€ ๋นจ๊ฐ„ ์ ์„ UIView๋กœ ์„ธํŒ…ํ•ด์ค๋‹ˆ๋‹ค. (์ €๋Š” ์ƒ์ž ๊ฐ€์šด๋ฐ์— ์ œ ์ด๋ฆ„์„ ๋„ฃ์–ด์„œ ๋ณด์—ฌ์ค„ ๊ฑฐ๊ธฐ ๋•Œ๋ฌธ์— label๋„ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค.) let square:UIView = { let view:UIView = UIView() view.backgroundColor = .systemCyan .. 2021. 11. 23.
[Data Structure] ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(Binary Search Tree) ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ (feat.Swift) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์ €๋ฒˆ ์‹œ๊ฐ„์— ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๊ฐ€ ๋ญ”์ง€ ์ด๋ก ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋Š”๋ฐ์š”. ์˜ค๋Š˜์€ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ BSTNode ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ๋Š” ๊ฐ’,์™ผ์ชฝ,์˜ค๋ฅธ์ชฝ ์ž์‹์˜ ๋…ธ๋“œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. class BSTNode { var value:T var leftChild:BSTNode? var rightChild:BSTNode? init(value:T) { self.value = value } } Binary Search Tree ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ์ตœ์ƒ๋‹จ ๊ฐ’์„ ๊ฐ€์งˆ root๋ฅผ ํ”„๋กœํผํ‹ฐ๋กœ ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. struct BinarySearchTree { var root:BSTNode? Insert public mutatin.. 2021. 11. 18.
[Data Structure] ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(Binary Search Tree)๋ž€? ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ ์ค‘ ํšจ์œจ์ ์ธ ๊ฒ€์ƒ‰,์‚ฝ์ž…,์‚ญ์ œ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ์ด์ง„ ํŠธ๋ฆฌ(Binary Tree)๋ž€? ๐Ÿค” ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ์ด์ง„ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋จผ์ € ์ด์ง„ ํŠธ๋ฆฌ๊ฐ€ ๋ญ”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ง„ ํŠธ๋ฆฌ๋Š” ๊ฐ๊ฐ์˜ ๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ ๋‘ ๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๋Š” ํŠธ๋ฆฌ ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ, ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ๊ฐ ์™ผ์ชฝ ์ž์‹ ๋…ธ๋“œ์™€ ์˜ค๋ฅธ์ชฝ ์ž์‹ ๋…ธ๋“œ๋ผ๊ณ  ํ•œ๋‹ค.... - ์œ„ํ‚ค ๋ฐฑ๊ณผ - ์ฆ‰, ๋…ธ๋“œ๋งˆ๋‹ค ์ž์‹์ด 2๊ฐœ ์ดํ•˜์ธ ํŠธ๋ฆฌ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์ด๋ฃจ์–ด์ง„ ํŠธ๋ฆฌ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. (์ž์‹์ด ์—†์–ด๋„ ๋˜๊ณ , ํ•˜๋‚˜์—ฌ๋„ ๋˜๊ณ , ๋‘ ๊ฐœ์—ฌ๋„ ๋ฉ๋‹ˆ๋‹ค.) ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(Binary Search Tree)๋ž€? ๐Ÿง ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์†.. 2021. 11. 17.
[Swift] Subscript๋ž€? ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ํ•ด์‰ฌ ํ…Œ์ด๋ธ”(๋”•์…”๋„ˆ๋ฆฌ)์„ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š” ์ค‘์— a["A"] ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ฐ’์„ ์ง€์ •ํ•˜๊ณ  ๊ฐ’์„ ๊บผ๋‚ด์˜ค๋Š”์ง€ ์ฐพ์•„๋ณด๋˜ ์ค‘์— subscript๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ๊ธ€์„ ์ •๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Subscript Swift ๊ณต์‹ ๋ฌธ์„œ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค! ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด ๊ทธ๋ฆฌ๊ณ  ์—ด๊ฑฐํ˜•์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ •์˜ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ๋ž€ ์ฝœ๋ ‰์…˜, ๋ฆฌ์ŠคํŠธ, ์‹œํ€€์Šค ๋“ฑ ์ง‘ํ•ฉ์˜ ํŠน์ • ๋ฉค๋ฒ„ ์—˜๋ฆฌ๋จผํŠธ์— ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค. ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜๋ฉด ์ถ”๊ฐ€์ ์ธ ๋ฉ”์†Œ๋“œ ์—†์ด ํŠน์ • ๊ฐ’์„ ํ• ๋‹น(assign)ํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜ฌ ์ˆ˜(retrieve) ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค๋ฉด, ๋ฐฐ์—ด(Array) ์ธ์Šคํ„ด์Šค์˜ ํŠน์ • ์—˜๋ฆฌ๋จผํŠธ๋Š” someArray[index] ๋ฌธ๋ฒ•.. 2021. 11. 16.
728x90
๋ฐ˜์‘ํ˜•