๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํ•˜๋…ธ์ด์˜ ํƒ‘ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํ•˜๋…ธ์ด์˜ ํƒ‘ ํ•˜๋…ธ์ด ํƒ‘(Tower of Hanoi)์€ ํผ์ฆ์˜ ์ผ์ข…์ž…๋‹ˆ๋‹ค. ์„ธ ๊ฐœ์˜ ๊ธฐ๋‘ฅ๊ณผ ์ด ๊ธฐ๋™์— ๊ฝ‚์„ ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ๊ฐ€ ๋‹ค์–‘ํ•œ ์›ํŒ๋“ค์ด ์žˆ๊ณ , ํผ์ฆ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—๋Š” ํ•œ ๊ธฐ๋‘ฅ์— ์›ํŒ๋“ค์ด ์ž‘์€ ๊ฒƒ์ด ์œ„์— ์žˆ๋„๋ก ์ˆœ์„œ๋Œ€ programmers.co.kr Solution ์ด๋ฒˆ ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ ์žฌ๊ท€๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด n๊ฐœ์˜ ์›ํŒ์ด 1๋ฒˆ ๊ธฐ๋‘ฅ์— ๋ชจ๋‘ ์žˆ์Šต๋‹ˆ๋‹ค. 1. 1๋ฒˆ ๊ธฐ๋‘ฅ์— ์žˆ๋Š” ์›ํŒ ์ค‘ ๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด ์›ํŒ์„ ์ œ์™ธํ•œ ์›ํŒ(n-1๊ฐœ)์„ ๋ชจ๋‘ 2๋ฒˆ ๊ธฐ๋‘ฅ์œผ๋กœ ์˜ฎ๊น๋‹ˆ๋‹ค. 2. ๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด ์›ํŒ์„ 3๋ฒˆ ๊ธฐ๋‘ฅ์œผ๋กœ ์˜ฎ๊น๋‹ˆ๋‹ค. 3. 2๋ฒˆ์— ์žˆ๋Š” n-1๊ฐœ์˜ ์›ํŒ์„ ๋ชจ๋‘ 3๋ฒˆ์œผ๋กœ ์˜ฎ๊น๋‹ˆ๋‹ค. ํ•˜๋…ธ์ด์˜ ํƒ‘์„ ํ‘ธ๋Š” ๊ณผ์ •์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…๋“œ๋ฆฌ๋ฉด ์œ„์™€ ๊ฐ™์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ ์˜๋ฌธ์ด.. 2021. 10. 31.
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ 3 ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋Š” ์ˆ˜ ์ฐพ๊ธฐ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋Š” ์ˆ˜ ์ฐพ๊ธฐ ์ž์—ฐ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. n์„ x๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋„๋ก ํ•˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ž์—ฐ์ˆ˜ x๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ๋‹ต์ด ํ•ญ์ƒ ์กด์žฌํ•จ์€ ์ฆ๋ช…๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œํ•œ์‚ฌํ•ญ ์ž… programmers.co.kr Solution 2๋ถ€ํ„ฐ n-1๊นŒ์ง€ ๋‚˜๋ˆ„๋ฉด์„œ ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋‚˜์˜ค๋ฉด ๋ฐ˜ํ™˜ํ•œ๋‹ค. func solution(_ n:Int) -> Int { for i in 2.. 2021. 10. 29.
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€2 110 ์˜ฎ๊ธฐ๊ธฐ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 110 ์˜ฎ๊ธฐ๊ธฐ 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ์–ด๋–ค ๋ฌธ์ž์—ด x์— ๋Œ€ํ•ด์„œ, ๋‹น์‹ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ–‰๋™์„ ํ†ตํ•ด x๋ฅผ ์ตœ๋Œ€ํ•œ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์•ž์— ์˜ค๋„๋ก ๋งŒ๋“ค๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. x์— ์žˆ๋Š” "110"์„ ๋ฝ‘์•„์„œ, ์ž„์˜์˜ ์œ„์น˜์— ๋‹ค์‹œ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ programmers.co.kr Solution ์ด๋ฒˆ ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ ์Šคํƒ์„ ์ด์šฉํ•ด์„œ ํ’€์–ด์•ผ ํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. 1. ๋ฌธ์ž์—ด์˜ ๋ชจ๋“  "110" ์‚ญ์ œํ•ด์ค€๋‹ค. ์—ฌ๊ธฐ์„œ ์Šคํƒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด 4๋ฒˆ,18๋ฒˆ,19๋ฒˆ,21๋ฒˆ ์—์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž ํ•˜๋‚˜์‹ ์Œ“์œผ๋ฉฐ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๋‘ ๊ธ€์ž์™€ ํ˜„์žฌ ๊ธ€์ž๋ฅผ ๋น„๊ตํ•ด์„œ "110" ์ด๋ผ๋Š” ๋ฌธ์ž๊ฐ€ ๋‚˜์˜ค๋ฉด ์Šคํƒ์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๋‘ ๋ฌธ์ž๋ฅผ ์ง€์›Œ์ค๋‹ˆ๋‹ค. "110"์„ ์ง€์› ์„ ๋•Œ ๊ทธ ์ด์ „์— ์žˆ๋˜ ๋ฌธ์ž์™€ ์ดํ›„์— ์žˆ๋˜ ๋ฌธ์ž๊ฐ€ ํ•ฉ์ณ์ ธ์„œ ๋˜ ".. 2021. 10. 27.
[Algorithm] ํ€ต ์ •๋ ฌ(Quick Sort)๋ž€? (feat. Swift) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ๋“œ๋””์–ด ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๋ง ๊ทธ๋Œ€๋กœ ๋งค์šฐ ๋น ๋ฅธ ์ˆ˜ํ–‰์‹œ๊ฐ„์„ ๊ฐ€์ง„ ํ€ต ์ •๋ ฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ํ€ต ์ •๋ ฌ(Quick Sort)์ด๋ž€? ๐Ÿง ํ€ต ์ •๋ ฌ(Quicksort)์€ ์ฐฐ์Šค ์•คํ„ฐ๋‹ˆ ๋ฆฌ์ฒ˜๋“œ ํ˜ธ์–ด๊ฐ€ ๊ฐœ๋ฐœํ•œ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋‹ค๋ฅธ ์›์†Œ์™€์˜ ๋น„๊ต๋งŒ์œผ๋กœ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋น„๊ต ์ •๋ ฌ์— ์†ํ•œ๋‹ค. - ์œ„ํ‚ค ๋ฐฑ๊ณผ - (์ฐธ๊ณ ๋กœ ๋ฆฌ์ฒ˜๋“œ ํ˜ธ์–ด๊ฐ€ ํ€ต ์ •๋ ฌ์„ ๊ฐœ๋ฐœํ–ˆ์„ ๋‹น์‹œ ๋‚˜์ด๋Š” 26์‚ด์ด๋ผ๊ณ  ํ•˜๋„ค์š”...) ํ•ฉ๋ณ‘ ์ •๋ ฌ๊ณผ ๊ฐ™์ด ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์†ํ•˜๊ณ  ํ‰๊ท ์ ์œผ๋กœ ๋งค์šฐ ๋น ๋ฅธ ์ˆ˜ํ–‰์†๋„๋ฅผ ์ž๋ž‘ํ•ฉ๋‹ˆ๋‹ค. ํ€ต ์ •๋ ฌ ๊ณผ์ • ๐Ÿ”จ ํ€ต ์ •๋ ฌ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„  ํ”ผ๋ด‡(Pivot)์ด ํ•ต์‹ฌ์ด ๋˜๋Š”๋ฐ์š”. ์—ฌ๊ธฐ์„œ ํ”ผ๋ด‡์€ ์–ด๋–ค ๊ฒƒ์ผ๊นŒ์š”? ํ”ผ๋ด‡์€ ๋ฐ”๋กœ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. ํ”ผ๋ด‡์„ ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ์„ ํƒํ•  ์ˆ˜๋„ .. 2021. 10. 25.
[๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป ๋‚ด ์ด์•ผ๊ธฐ] ํƒ€๋‹ค ๋‹คํ๋ฉ˜ํ„ฐ๋ฆฌ๋ฅผ ๋ณด๊ณ  ๋Š๋‚€์ (feat. ์Šคํƒ€ํŠธ์—… ํ˜„์‹ค) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์ฒ˜์Œ์œผ๋กœ ์˜ํ™” ๋ฆฌ๋ทฐ๋ฅผ ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”. ๋ฐ”๋กœ 'ํƒ€๋‹ค' ๋ผ๋Š” ์Šคํƒ€ํŠธ์—…์˜ ์ƒ์กด๊ธฐ๋ฅผ ๋‹ค๋ฃฌ ๋‹คํ๋ฉ˜ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ €๋„ ์—ญ์‹œ ์Šคํƒ€ํŠธ์—…์„ ์ฐฝ์—…์„ ํ•ด๋ณธ ๊ฒฝํ—˜์ด ์žˆ๊ณ , 'ํƒ€๋‹ค' ๋ผ๋Š” ๋งค์šฐ ํฐ ์Šคํƒ€ํŠธ์—…์€ '์–ด๋–ค ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์‚ฌ์—…์„ ์ง„ํ–‰ํ–ˆ์„๊นŒ' ๋ผ๋Š” ๊ถ๊ธˆ์ฆ์ด ์ƒ๊ฒจ ์˜ํ™”๋ฅผ ๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ํ™”๊ฐ€ ๋๋‚˜๊ณ  ๋Š๋‚€ ์ ์ด ๋งŽ์•„ ์ด๊ฑด ๋”ฐ๋กœ ์ •๋ฆฌํ•ด์„œ ๋‚จ๊ฒจ๋‘ฌ์•ผ๊ฒ ๋‹ค ์‹ถ์–ด์„œ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ํƒ€๋‹ค ์š”์•ฝ 'ํƒ€๋‹ค' ๋Š” ์˜์นด์˜ ๋Œ€ํ‘œ์ธ ์ด์žฌ์›… ๋Œ€ํ‘œ๊ฐ€ ๋น„ํŠธ์œˆ์œผ๋กœ ์•Œ๋ ค์ง„ ํšŒ์‚ฌ์ธ VCNC๋ฅผ ์ธ์ˆ˜ํ•˜์—ฌ 2018๋…„ 10์›” 8์ผ์— ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. 2020๋…„ ๊ธฐ์ค€์œผ๋กœ ํšŒ์› ์ˆ˜ 170๋งŒ๋ช…, ์ฐจ๋Ÿ‰1500๋Œ€ ๊ทœ๋ชจ์˜ ํšŒ์‚ฌ๋กœ ๊ตญ๋‚ด ๋ชจ๋นŒ๋ฆฌํ‹ฐ ์„œ๋น„์Šค๋กœ ์„ฑ์žฅํ–ˆ๋Š”๋ฐ์š”. ์ด ๋•Œ ํƒ์‹œ์—…๊ณ„์™€ ๋ฒ•์›์—์„œ '์œ„๋ฒ• ์ฝœํƒ.. 2021. 10. 24.
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์Šคํ‹ฐ์ปค ๋ชจ์œผ๊ธฐ(2) Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์Šคํ‹ฐ์ปค ๋ชจ์œผ๊ธฐ(2) N๊ฐœ์˜ ์Šคํ‹ฐ์ปค๊ฐ€ ์›ํ˜•์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ทธ๋ฆผ์€ N = 8์ธ ๊ฒฝ์šฐ์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. ์›ํ˜•์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์Šคํ‹ฐ์ปค์—์„œ ๋ช‡ ์žฅ์˜ ์Šคํ‹ฐ์ปค๋ฅผ ๋œฏ์–ด๋‚ด์–ด ๋œฏ์–ด๋‚ธ ์Šคํ‹ฐ์ปค์— ์ ํžŒ ์ˆซ์ž์˜ ํ•ฉ์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋„๋ก programmers.co.kr Solution ํ•ด๋‹น ๋ฌธ์ œ๋Š” DP(Dynamic Programming)์œผ๋กœ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. 1. ์Šคํ‹ฐ์ปค์˜ ๊ฐฏ์ˆ˜๊ฐ€ 3๊ฐœ ์ดํ•˜๋ผ๋ฉด ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์Šคํ‹ฐ์ปค์˜ ๊ฐฏ์ˆ˜๊ฐ€ 3๊ฐœ ์ดํ•˜๋ผ๋ฉด ํ•˜๋‚˜๋ฐ–์— ๋—„ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. if sticker.count < 4 { return sticker.max()!} 2. ์ฒซ ๋ฒˆ์งธ ์Šคํ‹ฐ์ปค๋ฅผ ๋œฏ์–ด๋ƒˆ์„ ๊ฒฝ์šฐ์™€ ๋‘ ๋ฒˆ์งธ ์Šคํ‹ฐ์ปค๋ฅผ ๋œฏ์–ด๋ƒˆ์„ ๊ฒฝ์šฐ์˜ dp๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. var dp1:.. 2021. 10. 19.
[Design Pattern] MVVM(Model - View - ViewModel) ํŒจํ„ด์ด๋ž€? (feat. Swift) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์ •๋ง ์˜ค๋žœ๋งŒ์— ๋””์ž์ธ ํŒจํ„ด์„ ์ •๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”. ๊ทธ ์ค‘์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ(?)์žˆ๊ณ  ํ•ซํ•œ MVVM ๋””์ž์ธ ํŒจํ„ด์„ ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. (SwiftUI ๋˜ํ•œ ๊ธฐ๋ณธ ๋””์ž์ธ ํŒจํ„ด์œผ๋กœ MVVM์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.) ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ MVVM(Model - View - ViewModel)ํŒจํ„ด์ด๋ž€? ๐Ÿง MVVM์€ ํ•˜๋‚˜์˜ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ์œผ๋กœ GUI ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(๋ทฐ)์˜ ๊ฐœ๋ฐœ์„ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋˜๋Š” ๋ฐฑ์—”๋“œ ๋กœ์ง(๋ชจ๋ธ)๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌ์‹œ์ผœ์„œ ๋ทฐ๊ฐ€ ์–ด๋Š ํŠน์ •ํ•œ ๋ชจ๋ธ ํ”Œ๋žซํผ์— ์ข…์†๋˜์ง€ ์•Š๋„๋ก ํ•ด์ค€๋‹ค. MVVM์˜ ๋ทฐ ๋ชจ๋ธ์€ ๊ฐ’ ๋ณ€ํ™˜๊ธฐ์ธ๋ฐ, ์ด๋Š” ๋ทฐ ๋ชจ๋ธ์ด ๋ชจ๋ธ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ฐ์ฒด๋ฅผ ๋…ธ์ถœ(๋ณ€ํ™˜)ํ•˜๋Š” ์ฑ…์ž„์„ ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ํ‘œํ˜„ํ•˜๊ธฐ๊ฐ€ ์‰ฌ์›Œ์ง„๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.. 2021. 10. 19.
[Algorithm] ํž™ ์ •๋ ฌ(HeapSort)์ด๋ž€? (feat.Swift) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์ €๋ฒˆ ์‹œ๊ฐ„์— ํž™์ด๋ž€ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋Š”๋ฐ์š”. (ํ˜น์‹œ๋ผ๋„ ์•ˆ๋ณด์‹  ๋ถ„์€ ์—ฌ๊ธฐ ์—์„œ ๋ณด๊ณ  ์™€์ฃผ์„ธ์š”!) ์˜ค๋Š˜์€ ํž™์„ ์ด์šฉํ•ด์„œ ์ •๋ ฌ์„ ํ•˜๋Š” ํž™์†ŒํŠธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ํž™ ์ •๋ ฌ((HeapSort)์ด๋ž€? ๐Ÿง ํž™ ์ •๋ ฌ(Heap sort)์ด๋ž€ ์ตœ๋Œ€ ํž™ ํŠธ๋ฆฌ๋‚˜ ์ตœ์†Œ ํž™ ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•ด ์ •๋ ฌ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ์„œ, ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์„ ์œ„ํ•ด์„œ๋Š” ์ตœ๋Œ€ ํž™์„ ๊ตฌ์„ฑํ•˜๊ณ  ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ์œ„ํ•ด์„œ๋Š” ์ตœ์†Œ ํž™์„ ๊ตฌ์„ฑํ•˜๋ฉด ๋œ๋‹ค. - ์œ„ํ‚ค ๋ฐฑ๊ณผ - ์ฆ‰, ํž™์„ ์ด์šฉํ•ด์„œ ์ •๋ ฌ์„ ํ•˜๋Š” ๋ฐฉ์‹์ด์—์š”. ํž™ ์ •๋ ฌ ๊ณผ์ • ๐Ÿ”จ ํž™ ์ •๋ ฌ ๊ณผ์ •์€ ํž™์—์„œ ์‚ญ์ œ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ์™€ ๋˜‘๊ฐ™์•„์š”. ์‚ญ์ œ๊ณผ์ •์ด ์•„๋ž˜์™€ ๊ฐ™์€๋ฐ์š”. ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋ฐฐ์—ด์— ์ฐจ๋ก€๋กœ ์Œ“๊ฒŒ๋˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? ์ตœ๋Œ€ํž™์ด๋ผ๋ฉด ๊ฐ€์žฅ ํฐ ์ˆซ์ž๊ฐ€ ์ฐจ๋ก€.. 2021. 10. 19.
[Data Structure] ํž™(Heap)์ด๋ž€? (feat. Swift) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์š”์ฆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๊ทธ ์ค‘ ํž™์†ŒํŠธ์— ๋Œ€ํ•ด ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํž™์†ŒํŠธ๋ฅผ ํ•˜๋ ค๋ฉด ํž™์ด๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ํ•„์š”ํ•˜๋”๋ผ๊ตฌ์š”. ๊ทธ๋ž˜์„œ ํž™์ด ๋ฌด์—‡์ด๊ณ  ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ(Complete Binary Tree)๋ž€? โ›“ ๋จผ์ € ํž™์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ ์ „์— ์™„์ „์ด์ง„ํŠธ๋ฆฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋Š” ํž™์ด ์™„์ „์ด์ง„ํŠธ๋ฆฌ๋กœ ๋˜์–ด์žˆ๊ธฐ ๋–„๋ฌธ์ž…๋‹ˆ๋‹ค. ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ์—์„œ, ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์„ ์ œ์™ธํ•˜๊ณ  ๋ชจ๋“  ๋ ˆ๋ฒจ์ด ์™„์ „ํžˆ ์ฑ„์›Œ์ ธ ์žˆ์œผ๋ฉฐ, ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์˜ ๋ชจ๋“  ๋…ธ๋“œ๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๊ฐ€์žฅ ์™ผ์ชฝ์— ์žˆ๋‹ค. ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ h ์—์„œ 1๋ถ€ํ„ฐ 2h-1 ๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ๋Š” ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•ด ํšจ์œจ์ ์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค. - ์œ„ํ‚ค ๋ฐฑ๊ณผ - ์ฆ‰, ๋งจ ๋งˆ์ง€๋ง‰.. 2021. 10. 15.
[Git] ์ž๊ธฐ ์ปดํ“จํ„ฐ(Local) ํด๋” Github์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์˜ˆ์ œ๋“ค์„ ์ œ ์ปดํ“จํ„ฐ ํด๋”์— ๋ชจ์•„๋†“์•˜๋Š”๋ฐ ์ด๊ฑธ ๊นƒํ—™ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ์—ฐ๊ฒฐํ•ด์„œ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ๋”๋ผ๊ตฌ์š”. ๊ทธ๋ž˜์„œ ๋กœ์ปฌ ํด๋”๋ฅผ ๊นƒํ—™์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Github์— ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ ์ž์‹ ์˜ ๊นƒํ—™์œผ๋กœ ๊ฐ€์„œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”! ๋กœ์ปฌ ํด๋” ์ƒ์„ฑ ์ž์‹ ์˜ ์ปดํ“จํ„ฐ์—๋„ ์›ํ•˜๋Š” ์œ„์น˜์— ํด๋”๋ฅผ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค. ๋กœ์ปฌ ํด๋”์— ์›๊ฒฉ ์ €์žฅ์†Œ ์—ฐ๊ฒฐํ•˜๊ธฐ ๋กœ์ปฌ ํด๋”๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋กœ ์ด๋™ํ•ด์ค๋‹ˆ๋‹ค. cd ๋กœ์ปฌ์ €์žฅ์†Œ ์ฃผ์†Œ ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ Code๋ผ๊ณ  ์ดˆ๋ก์ƒ‰ ๋ฒ„ํŠผ์ด ์žˆ์„๊ฑฐ์—์š”. ๊ฑฐ๊ธฐ์„œ HTTPS ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ•ด์ค๋‹ˆ๋‹ค. ๋จผ์ € git init ๋ถ€ํ„ฐ ์ง„ํ–‰ํ•ด ์ค๋‹ˆ๋‹ค git init ๊ทธ ๋‹ค์Œ ํ„ฐ๋ฏธ๋„์— ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณต์‚ฌํ•ด์ค€ ์›๊ฒฉ์ €์žฅ์†Œ HTTPS ์ฃผ์†Œ์™€ ํ•จ๊ป˜ ์ž‘์„ฑํ•ด์ค๋‹ˆ๋‹ค. git .. 2021. 10. 14.
[Algorithm] ํ•ฉ๋ณ‘ ์ •๋ ฌ(Merge Sort)๋ž€? (feat. Swift) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ธ ํ•ฉ๋ณ‘ ์ •๋ ฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ๋ถ„ํ•  ์ •๋ณต(Divide and Conquer Algorithm) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? ๐Ÿก ์œ„์—์„œ ํ•ฉ๋ณ‘ ์ •๋ ฌ์€ ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ๋ง์”€๋“œ๋ ธ๋Š”๋ฐ์š”. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฌด์—‡์ผ๊นŒ์š”? ๋ง ๊ทธ๋Œ€๋กœ ์ง€๊ธˆ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๋ฅผ ์ž‘๊ฒŒ ์ชผ๊ฐœ์„œ(๋ถ„ํ• ) ํ’€์–ด๋‚˜๊ฐ€๋Š”(์ •๋ณต) ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž‘์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ ํฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด๋‚˜๊ฐ€๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ฉ๋ณ‘ ์ •๋ ฌ์ด๋ž€? ๐Ÿคผ‍โ™€๏ธ ํ•ฉ๋ณ‘ ์ •๋ ฌ ๋˜๋Š” ๋ณ‘ํ•ฉ ์ •๋ ฌ์€ ๋น„๊ต ๊ธฐ๋ฐ˜ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์„ ๋•Œ ์ด ์ •๋ ฌ์€ ์•ˆ์ • ์ •๋ ฌ์— ์†ํ•˜๋ฉฐ, ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•˜๋‚˜์ด๋‹ค. ์กด ํฐ ๋…ธ์ด๋งŒ์ด 1.. 2021. 10. 14.
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ 3 ๊ธˆ๊ณผ ์€ ์šด๋ฐ˜ํ•˜๊ธฐ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ธˆ๊ณผ ์€ ์šด๋ฐ˜ํ•˜๊ธฐ ์–ด๋Š ์™•๊ตญ์— ํ•˜๋‚˜ ์ด์ƒ์˜ ๋„์‹œ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์™•๊ตญ์˜ ์™•์€ ์ƒˆ ๋„์‹œ๋ฅผ ์ง“๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋„์‹œ๋ฅผ ์ง“๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋„์‹œ๋ฅผ ์ง“๋Š” ์žฅ์†Œ์— ๊ธˆ a kg๊ณผ ์€ b kg์ด ์ „๋‹ฌ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋„์‹œ์—๋Š” programmers.co.kr Solution ํ•ด๋‹น ๋ฌธ์ œ๋Š” ์ด์ง„ํƒ์ƒ‰์„ ์ด์šฉํ•ด์„œ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ตœ๋Œ€๋กœ ๊ฑธ๋ฆด ์‹œ๊ฐ„์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ ๊ฐ€๋ฉด์„œ ๊ธˆ๊ณผ ์€์„ ์šด๋ฐ˜ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. 1. ์ตœ๋Œ€๋กœ ๊ฑธ๋ฆด ์‹œ๊ฐ„์„ ๊ตฌํ•œ๋‹ค. ์•„๋ž˜ ์ œํ•œ์‚ฌํ•ญ์„ ์ฐธ๊ณ ํ•˜๋ฉด a์™€ b์˜ ์ตœ๋Œ€์น˜๊ฐ€ ๊ฐ ๊ฐ 10์˜ 9์Šน์ด๋ฏ€๋กœ 10์˜ 9์Šน * 2 ์›€์ง์ด๋Š”๋ฐ ์ตœ๋Œ€๋กœ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด 10์˜ 5์Šน์ด๊ณ  ์™”๋‹ค ๊ฐ”๋‹ค ์™•๋ณต์ด๋ฏ€๋กœ 10์˜ 5์Šน *2 ์ฆ‰, 10e9 * 10e5 * 4์ž…๋‹ˆ๋‹ค. 2. ์ด์ง„.. 2021. 10. 10.
728x90
๋ฐ˜์‘ํ˜•