๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ˆซ์ž ๊ฒŒ์ž„ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ˆซ์ž ๊ฒŒ์ž„ xx ํšŒ์‚ฌ์˜ 2xN๋ช…์˜ ์‚ฌ์›๋“ค์€ N๋ช…์”ฉ ๋‘ ํŒ€์œผ๋กœ ๋‚˜๋ˆ  ์ˆซ์ž ๊ฒŒ์ž„์„ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ํŒ€์„ ๊ฐ๊ฐ AํŒ€๊ณผ BํŒ€์ด๋ผ๊ณ  ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ˆซ์ž ๊ฒŒ์ž„์˜ ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๋ชจ๋“  ์‚ฌ์›์ด ๋ฌด์ž‘์œ„๋กœ programmers.co.kr Solution 1. a์™€ b๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์‹œํ‚ต๋‹ˆ๋‹ค. (sortB,sortA๋ผ๊ณ  ์นญํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.) 2. sortB๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ sortA์˜ ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ๊ฐ’(๊ฐ€์žฅ ์ž‘์€๊ฐ’)์ด ๋” ์ž‘๋‹ค๋ฉด sortA์˜ ์ฒซ๋ฒˆ์งธ ๊ฐ’์„ ์‚ญ์ œํ•ด์ค๋‹ˆ๋‹ค. 3. ์ „์ฒด ๊ฐฏ์ˆ˜์—์„œ sortA์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋นผ์ค๋‹ˆ๋‹ค. Souce Code func solution(_ a:[Int], _ b:[Int]) -> Int { var sortA = a.sorted() b.sorted().f.. 2021. 6. 11.
[iOS] ๊ฑด๊ฐ• ๋ฐ์ดํ„ฐ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ(feat.HealthKit) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ‘Ÿ ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ๋‚ด ์•„์ดํฐ์— ์žˆ๋Š” ๋‚˜์˜ ๊ฑด๊ฐ• ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€๋ณด๊ณ  ๋˜ ๊ธฐ๋กํ•ด๋ณด๋Š” ๊ฒƒ์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Info.plist ์•„๋ž˜์™€ ๊ฐ™์ด ๋‘ ์š”์ฒญ์„ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. NSHealthShareUsageDescription ๋Š” ์ƒˆ๋กœ์šด ๊ฑด๊ฐ• ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„ ๋•Œ NSHealthUpdateUsageDescription ๋Š” ๊ธฐ์กด์˜ ๊ฑด๊ฐ• ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ฌ ๋•Œ ํ•„์š”ํ•ด์š”. NSHealthShareUsageDescription ๊ฑด๊ฐ• ๋ฐ์ดํ„ฐ๋ฅผ ์“ธ๋•Œ ํ•„์š”ํ•ด์š”. NSHealthUpdateUsageDescription ๊ฑด๊ฐ• ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š”๋ฐ ํ•„์š”ํ•ด์š”. Signing & Capability ์•ฑ์˜ Targets์— Signing & Capbility์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด HealthKit์„ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”! ๋ฐ.. 2021. 6. 8.
[CS] TDD(Test-Driven-Development)๋ž€? ์•ˆ๋…•ํ•˜์„ธ์š” Foma๐Ÿ‘Ÿ ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜ ์•Œ์•„๋ณผ ์ฃผ์ œ๋Š” ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋ฌด์กฐ๊ฑด ๊ฐ–์ถฐ์•ผ ํ•˜๋Š” ์ž์„ธ์ธ TDD์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ •๋ง ์ค‘์š”ํ•œ ๊ฐœ๋…์ธ๋ฐ ์ด์ œ์„œ์•ผ ๋‹ค๋ฃจ๊ฒŒ ๋˜๋‹ค๋‹ˆ... ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”! TDD(ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ)๋ž€? ๐Ÿค” "ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ์€ ๋งค์šฐ ์งง์€ ๊ฐœ๋ฐœ ์‚ฌ์ดํด์„ ๋ฐ˜๋ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ๋จผ์ € ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ฒ€์ฆํ•˜๋Š” ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ๊ทธ๋Ÿฐ ํ›„์—, ๊ทธ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ํ†ต๊ณผํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ํ‘œ์ค€์— ๋งž๋„๋ก ๋ฆฌํŒฉํ† ๋งํ•œ๋‹ค. ์ด ๊ธฐ๋ฒ•์„ ๊ฐœ๋ฐœํ–ˆ๊ฑฐ๋‚˜ '์žฌ๋ฐœ๊ฒฌ' ํ•œ ๊ฒƒ์œผ๋กœ ์ธ์ •๋˜๋Š” Kent Beck์€ 2003๋…„์— TDD๊ฐ€ ๋‹จ์ˆœํ•œ ์„ค๊ณ„๋ฅผ ์žฅ๋ คํ•˜๊ณ  ์ž์‹ ๊ฐ์„ ๋ถˆ์–ด๋„ฃ์–ด์ค€๋‹ค๊ณ  ๋งํ•˜์˜€๋‹ค." - ์œ„ํ‚ค ๋ฐฑ๊ณผ - ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์“ฐ๊ธฐ .. 2021. 6. 7.
[CS] F.I.R.S.T ์›์น™์ด๋ž€? (feat.UnitTest) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ‘Ÿ ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜ ์•Œ์•„๋ณผ ์ฃผ์ œ๋Š” ์ข‹์€ ์œ ๋‹› ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ F.I.R.S.T ์›์น™์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ F.I.R.S.T ์›์น™์ด๋ž€? First ์›์น™์€ 'ํด๋ฆฐ ์ฝ”๋“œ' ๋ผ๋Š” ์•„์ฃผ ์œ ๋ช…ํ•œ ์ฑ…์˜ ์ €์ž์ธ Bob Martin์ด ์ฒ˜์Œ ์ œ์‹œํ•œ ๊ทœ์น™์ž…๋‹ˆ๋‹ค. ์ด ๊ทœ์น™์€ ํšจ์œจ์ ์ด๊ณ  ์ข‹์€ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ 5๊ฐ€์ง€ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น ๋ฅด๊ณ (Fast),๋…๋ฆฝ์ ์ด๊ณ (Independent),๋ฐ˜๋ณต๊ฐ€๋Šฅํ•˜๋ฉฐ(Repeatable),์ž์ฒด ๊ฒ€์ฆ๊ฐ€๋Šฅํ•˜๊ณ (Self-validating),์ฒ ์ €ํ•˜๊ณ  ์ ์‹œ์—(Thorough&Timely) ์ž‘์„ฑ ๊ฐ€๋Šฅํ•œ ํ…Œ์ŠคํŠธ๋ฅผ First ์›์น™์„ ์ค€์ˆ˜ํ•œ ์œ ๋‹›ํ…Œ์ŠคํŠธ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด 5๊ฐ€์ง€ ์›์น™์— ๋Œ€ํ•ด์„œ ์„ธ์„ธํ•˜๊ฒŒ ๋‹ค๋ฃจ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Fast ์œ ๋‹› ํ…Œ์ŠคํŠธ๋Š” ๋น ๋ฅด๊ฒŒ .. 2021. 6. 7.
[Algorithm] ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS,Depth-First-Search)์ด๋ž€? (feat.Swift) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ‘Ÿ ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์—์„œ ์—„์ฒญ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ถœ์ œ๋˜๊ณ  ์•Œ์•„๋‘๋ฉด ์ •๋ง ์œ ์šฉํ•œ DFS์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”! DFS๋ž€? "๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์€ ๋งน๋ชฉ์  ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์˜ ํ•˜๋‚˜๋กœ ํƒ์ƒ‰ํŠธ๋ฆฌ์˜ ์ตœ๊ทผ์— ์ฒจ๊ฐ€๋œ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜๊ณ , ์ด ๋…ธ๋“œ์— ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๋™์ž‘์ž ์ค‘ ํ•˜๋‚˜๋ฅผ ์ ์šฉํ•˜์—ฌ ํŠธ๋ฆฌ์— ๋‹ค์Œ ์ˆ˜์ค€์˜ ํ•œ ๊ฐœ์˜ ์ž์‹๋…ธ๋“œ๋ฅผ ์ฒจ๊ฐ€ํ•˜๋ฉฐ, ์ฒจ๊ฐ€๋œ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ๋ชฉํ‘œ๋…ธ๋“œ์ผ ๋•Œ๊นŒ์ง€ ์•ž์˜ ์ž์‹ ๋…ธ๋“œ์˜ ์ฒจ๊ฐ€ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด ๊ฐ€๋Š” ๋ฐฉ์‹์ด๋‹ค." - ์œ„ํ‚ค ๋ฐฑ๊ณผ - ์ด๊ฒŒ ๋ญ”๋ง์ด์•ผ....;;; ์‰ฝ๊ฒŒ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด์„œ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ์ง€๊ตฌ ์•ˆ์— ์„ธ ๋‚˜๋ผ๋งŒ ์žˆ๊ณ  ๋ชจ๋“  ๋‚˜๋ผ์™€ ๋‚˜๋ผ์˜ ๋„์‹œ๋“ค์„ ํƒ์ƒ‰ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ์€ "๋‚œ ๋จผ์ € ์–ด๋–ค ๋‚˜๋ผ๋“ค์ด ์žˆ๋Š”์ง€ ๋ถ€ํ„ฐ ํ™•์ธํ•˜๊ณ  ๊ทธ ๋‚˜๋ผ ์•ˆ์— ์žˆ๋Š”.. 2021. 6. 5.
[Design Pattern] Apple์˜ MVC ํŒจํ„ด์ด๋ž€? ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ‘Ÿ ์ž…๋‹ˆ๋‹ค! ์ €๋ฒˆ ๊ธ€์— MVC ํŒจํ„ด์— ๋Œ€ํ•ด์„œ ๋‹ค๋ค˜์—ˆ๋Š”๋ฐ iOS์—์„œ ๋‹ค๋ฃจ๋Š” ๊ฒƒ๊ณผ๋Š” ์กฐ๊ธˆ ๋‹ค๋ฅด๊ฒŒ ์ปค์Šคํ…€๋ทฐ๋ฅผ ์ง์ ‘ ๋งŒ๋“ค์–ด์„œ ๋ญ”๊ฐ€ ๋” ์ •์„์ ์ธ MVC ํŒจํ„ด์„ ๊ตฌํ˜„ํ–ˆ์–ด์š”. (ํ˜น์‹œ ์•ˆ๋ณด์…จ๊ฑฐ๋‚˜ ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ์—ฌ๊ธฐ ์—์„œ ๋ด์ฃผ์„ธ์š”!) ํ•˜์ง€๋งŒ ๋ณดํ†ต MVCํ•˜๊ณ ๋Š” ์กฐ๊ธˆ ๋‹ค๋ฅธ ๋ถ€๋ถ„์ด ์žˆ์–ด์š”. ๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ ์• ํ”Œ์˜ MVC ํŒจํ„ด์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! Apple's MVC ์• ํ”Œ์€ ์ „ํ˜•์ ์ธ MVC ํŒจํ„ด์—์„œ ๋ชจ๋ธ๊ณผ ๋ทฐ์™€ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์„œ๋กœ ์˜์กด์ ์ธ ๊ฒƒ์„ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ž์‹ ๋“ค๋งŒ์˜ MVC ํŒจํ„ด์„ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋ทฐ์™€ ๋ชจ๋ธ์„ ์—ฐ๊ฒฐ์‹œ์ผœ์ฃผ์–ด ์„œ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๊ณ  ์„œ๋กœ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๊ฒŒ๋” ๋งŒ๋“œ๋ ค๊ณ  ํ–ˆ์œผ๋‚˜.... ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋ทฐ์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด์— ๊ด€์—ฌํ•˜๊ฒŒ ๋˜๋ฉด์„œ MV - C ํŒจํ„ด์ด ๋˜์–ด๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด์„œ.. 2021. 6. 3.
[Design Pattern] MVCํŒจํ„ด์ด๋ž€? (Model-View-Controller) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜ ์•Œ์•„๋ณผ ์ฃผ์ œ๋Š” ํ”ํžˆ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ธ Model - View -Controller ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”! MVC ํŒจํ„ด์ด๋ž€? "MVC๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด์ด๋‹ค. ์ด ํŒจํ„ด์„ ์„ฑ๊ณต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋กœ๋ถ€ํ„ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹œ๊ฐ์  ์š”์†Œ๋‚˜ ๊ทธ ์ด๋ฉด์—์„œ ์‹คํ–‰๋˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์„œ๋กœ ์˜ํ–ฅ ์—†์ด ์‰ฝ๊ฒŒ ๊ณ ์น  ์ˆ˜ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. MVC์—์„œ ๋ชจ๋ธ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๋ทฐ๋Š” ํ…์ŠคํŠธ, ์ฒดํฌ๋ฐ•์Šค ํ•ญ๋ชฉ ๋“ฑ๊ณผ ๊ฐ™์€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ , ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์‚ฌ์ด์˜ ์ƒํ˜ธ๋™์ž‘์„ ๊ด€๋ฆฌํ•œ๋‹ค." - ์œ„ํ‚ค ๋ฐฑ๊ณผ- ์žฅ์  ๋‹ค๋ฅธ ํŒจํ„ด์— ๋น„ํ•ด.. 2021. 6. 3.
[iOS] ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ…Œ์ด๋ธ”๋ทฐ ๋ฐ์ดํ„ฐ์†Œ์Šค ๋งŒ๋“ค๊ธฐ(Reusable TableView DataSource) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ‘Ÿ ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ํ…Œ์ด๋ธ”๋ทฐ ๋ฐ์ดํ„ฐ์†Œ์Šค๋ฅผ ์ œ๋„ˆ๋ฆญํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์„œ ๋ชจ๋“  ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ StoryBoard ์Šคํ† ๋ฆฌ๋ณด๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ํ…Œ์ด๋ธ”๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์‹œ๊ณ  ์…€์— ์ด๋ฆ„์„ ํ‘œ์‹œํ•  ๋ ˆ์ด๋ธ”์„ ์ถ”๊ฐ€ํ•ด์คฌ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์…€์˜ ํด๋ž˜์Šค ์ด๋ฆ„์€ NameTableViewCell๋กœ ํ•ด์ฃผ์„ธ์š”! ( ๋‚˜์ค‘์— ๋งŒ๋“ค์–ด์ค„๊ฑฐ์—์š”!) identifier๋Š” ์…€ ์ด๋ฆ„๊ณผ ๋˜‘๊ฐ™์ด ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. NameTableVIewCell ์•„๋ž˜์™€ ๊ฐ™์ด ๋ ˆ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•ด์ฃผ์„ธ์š”. import UIKit class NameTableViewCell: UITableViewCell { @IBOutlet weak var name: UILabel! } Tabl.. 2021. 6. 3.
[OS] ์ปดํŒŒ์ผ๊ณผ ๋งํฌ ๊ทธ๋ฆฌ๊ณ  ๋นŒ๋“œ์™€ ์‹คํ–‰์˜ ์ฐจ์ด๋Š”?(Differences Build,Complile,Run and Link) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ‘Ÿ ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜ ์•Œ์•„๋ณผ ๊ฒƒ์€ ์ •๋ง ๊ธฐ์ดˆ์ ์ธ ์ปดํŒŒ์ผ๊ณผ ๋นŒ๋“œ์™€ ๋งํฌ์™€ ๋Ÿฐ์˜ ์ฐจ์ด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ๊ฑฐ์—์š”! ๋Œ€์ถฉ์€ ๋ญ๊ฐ€ ๋ญ”์ง€ ์ง์ž‘์€ ๊ฐ€๋Š”๋ฐ ํ•œ๋งˆ๋””๋กœ ์ •๋ฆฌํ•˜๋ ค๋‹ˆ๊น ๋ง์ด ์•ˆ๋‚˜์˜ค๋”๋ผ๊ตฌ์š”... ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Compile "์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํŠน์ • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์“ฐ์—ฌ ์žˆ๋Š” ๋ฌธ์„œ๋ฅผ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์˜ฎ๊ธฐ๋Š” ์–ธ์–ด ๋ฒˆ์—ญ ํ”„๋กœ๊ทธ๋žจ์„ ๋งํ•œ๋‹ค." - ์œ„ํ‚ค ๋ฐฑ๊ณผ - ์ฆ‰, ์‚ฌ๋žŒ์ด ์ž‘์„ฑํ•œ ์–ธ์–ด๋ฅผ ๊ธฐ๊ณ„๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ๋ฒˆ์—ญํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์ปดํŒŒ์ผ์ž…๋‹ˆ๋‹ค. (iOS๋Š” Xcode์—์„œ ์ปดํŒŒ์ผ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ฃผ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” LLVM/Clang์ด๋ผ๊ณ  ํ•˜๋„ค์š”. ์ด๊ฑด ๋‹ค์Œ์— ๋” ๊นŠ์ด ์•Œ์•„๋ณด๋„๋ก ํ• ๊ฒŒ์š”!) Build "๋นŒ๋“œ๋Š” ์†Œ์Šค ์ฝ”๋“œ ํŒŒ์ผ์„ ์ปดํ“จํ„ฐ๋‚˜ ํœด๋Œ€ํฐ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋…๋ฆฝ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ€๊ณต๋ฌผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ๋งํ•˜๊ฑฐ๋‚˜.. 2021. 6. 2.
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ 2 ๋ชจ๋‘ 0์œผ๋กœ ๋งŒ๋“ค๊ธฐ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ชจ๋‘ 0์œผ๋กœ ๋งŒ๋“ค๊ธฐ ๊ฐ ์ ์— ๊ฐ€์ค‘์น˜๊ฐ€ ๋ถ€์—ฌ๋œ ํŠธ๋ฆฌ๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๋‹ค์Œ ์—ฐ์‚ฐ์„ ํ†ตํ•˜์—ฌ, ์ด ํŠธ๋ฆฌ์˜ ๋ชจ๋“  ์ ๋“ค์˜ ๊ฐ€์ค‘์น˜๋ฅผ 0์œผ๋กœ ๋งŒ๋“ค๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ž„์˜์˜ ์—ฐ๊ฒฐ๋œ ๋‘ ์ ์„ ๊ณจ๋ผ์„œ ํ•œ์ชฝ์€ 1 ์ฆ๊ฐ€์‹œํ‚ค๊ณ , ๋‹ค๋ฅธ ํ•œ programmers.co.kr Solution 1. 0์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํŠธ๋ฆฌ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ๊ฐ ๊ฐ€์ค‘์น˜์˜ ๋ชจ๋“  ํ•ฉ์ด 0์ด๋ผ๋ฉด 0์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํŠธ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ 0์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. (canMakeZero ํ•จ์ˆ˜๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!) 2. ๊ฐ ์ •์ ๋งˆ๋‹ค ๋ถ€๋ชจ์™€ ์ž์‹์„ ์„ธํŒ…ํ•˜๊ธฐ ๊ฐ edges์— ์—ฐ๊ฒฐ๋œ ์ •์ ๋“ค์„ ์„œ๋กœ ๋ถ€๋ชจ์™€ ์ž์‹์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. (setChildren ํ•จ์ˆ˜๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!) 3. DFS๋กœ ๋ฆฌํ”„ ๋…ธ๋“œ ์ฐพ๊ธฐ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด 0๊ณผ ์—ฐ๊ฒฐ๋œ .. 2021. 6. 2.
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ 2 ๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ programmers.co.kr Solution ํ•ด๋‹น ๋ฌธ์ œ๋Š” ์Šคํƒ์„ ์ด์šฉํ•ด์„œ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์—ด๋ฆฐ ๊ด„ํ˜ธ = "{","[","(" ๋‹ซํžŒ ๊ด„ํ˜ธ = "}","]",")" ๋ผ๊ณ  ํ‘œํ˜„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 1. ์Šคํƒ์— ์—ด๋ฆฐ ๊ด„ํ˜ธ๋ฅผ ๋„ฃ๊ณ  s๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๋‹ซํžŒ ๊ด„ํ˜ธ์™€ ๋น„๊ตํ•œ๋‹ค. ์ฃผ์–ด์ง„ s๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ์Šคํƒ์— ์—ด๋ฆฐ ๊ด€ํ˜ธ๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋‹ซํžŒ ๊ด„ํ˜ธ๊ฐ€ ๋‚˜์™”์„ ๋•Œ ์Šคํƒ์ด ๋น„์–ด์žˆ๊ฑฐ๋‚˜ ์Šคํƒ์˜ ๋งˆ์ง€๋ง‰๋ฒˆ์งธ ์—ด๋ฆฐ๊ด„ํ˜ธ์™€ ํ˜„์žฌ ๋‹ซํžŒ ๊ด„ํ˜ธ๊ฐ€ ๋™์ผํ•˜์ง€ ์•Š๋‹ค๋ฉด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค. (isRightBrackets ํ•จ์ˆ˜๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!) 2. s๋ฅผ ์™ผ์ชฝ์œผ๋กœ ํšŒ์ „ํ•˜๋ฉฐ 1์„ ๋ฐ˜๋ณตํ•œ๋‹ค. s๋ฅผ ํšŒ์ „ํ•˜๊ณ  1์—์„œ ํ–ˆ๋˜ ๋ฐฉ์‹์œผ๋กœ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. (rotateLeft ํ•จ์ˆ˜๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!) 3. ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ผ .. 2021. 5. 31.
[OS] ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ ๊ทธ๋ฆฌ๊ณ  ์ง๋ ฌ๊ณผ ๋™์‹œ๋Š” ๋ฌด์—‡์ผ๊นŒ?(Sync vs Async & Serial vs Concurrent) ์•ˆ๋…•ํ•˜์„ธ์š” Foma๐Ÿ‘Ÿ ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜ ์“ฐ๋ ˆ๋“œ๋ฅผ ๊ณ ์ˆ˜(?)์ฒ˜๋Ÿผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ์ง€์‹์ธ ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ ๊ทธ๋ฆฌ๊ณ  ์ง๋ ฌ๊ณผ ๋™์‹œ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Sync(๋™๊ธฐ) ๋™๊ธฐ์˜ ๋œป์€ ๋ง ๊ทธ๋Œ€๋กœ ๋™์‹œ์— ์ผ์–ด๋‚œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์ด ๋œป ๋•Œ๋ฌธ์— ๋” ํ—ท๊ฐˆ๋ฆฌ๊ธฐ๋„ ํ•˜๋Š”๋ฐ์š”. ๋™๊ธฐ๋กœ ์ž‘์—…์„ ํ–ˆ์„๋• ๋™์‹œ์— ์ผ์–ด๋‚˜์ง€ ์•Š๊ณ  ์ฐจ๋ก€๋Œ€๋กœ ์ผ์–ด๋‚˜์ฃ ? ๊ทธ๋Ÿฌ๋ฉด ๋„๋Œ€์ฒด ๋ญ๊ฐ€ ๋™์‹œ์— ์ผ์–ด๋‚œ๋‹ค๋Š” ๊ฒƒ์ผ๊นŒ์š”? ๋ฐ”๋กœ ์š”์ฒญ๊ณผ ์‘๋‹ต์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊น "๋‚ด๊ฐ€ ์ด๊ฑฐ ํ•˜๋ผ๊ณ  ์ง€์‹œํ–ˆ์œผ๋ฉด ๋๋‚ผ๋•Œ๊นŒ์ง€ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€๋งˆ! ์š”์ฒญ์„ ํ–ˆ์œผ๋ฉด ๋™์‹œ์— ์‘๋‹ตํ•ด!" ์ด๋Ÿฐ ๋œป์ด์ฃ .. ์ผ๋ฐ˜์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ• ๋ฉด ์ž‘์„ฑํ•œ ์ˆœ์„œ๋Œ€๋กœ ํ˜ธ์ถœ๋˜์ฃ ? ์•„๋ฌด๋Ÿฐ ์„ธํŒ…์„ ํ•ด๋†“์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ณดํ†ต ๋™๊ธฐ๋กœ ์ž‘์—…์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. func ์ž‘์—…1() { print("์ž‘์—…1 ์‹œ์ž‘") Thread... 2021. 5. 31.
728x90
๋ฐ˜์‘ํ˜•