์ธ๋„ค์ผ 3. ์‹œ๊ฐ„ ๋ณต์žก๋„ (Time Complexity) Codility Lesson ํ•œ๊ตญ์–ด ์ •๋ฆฌ๋ณธ (JavaScript ver.) ์‹œ๊ฐ„ ๋ณต์žก๋„๋ž€?์‹œ๊ฐ„ ๋ณต์žก๋„(Time Complexity)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๋Œ€๋žต์ ์œผ๋กœ ์ถ”์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •ํ™•ํ•œ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์€ ์ปดํŒŒ์ผ๋Ÿฌ, ์ปดํ“จํ„ฐ์˜ ์ข…๋ฅ˜, ํ”„๋กœ์„ธ์„œ ์†๋„ ๋“ฑ ์—ฌ๋Ÿฌ ์š”์ธ์— ์˜ํ•ด ์˜ํ–ฅ์„ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ๋ณต์žกํ•˜๋‹ค. ๋”ฐ๋ผ์„œ, ์šฐ๋ฆฌ๋Š” ์‹คํ–‰ ์‹œ๊ฐ„์˜ ๋Œ€๋žต์ ์ธ ํฌ๊ธฐ(order of magnitude) ๋ฅผ ์ธก์ •ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋‹ค.๋ณต์žก๋„๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ ์—ฐ์‚ฐ(primitive operation) ์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ธฐ๋ณธ ์—ฐ์‚ฐ์ด๋ž€ ๋ง์…ˆ, ๊ณฑ์…ˆ, ๋Œ€์ž… ์—ฐ์‚ฐ ๋“ฑ์„ ์˜๋ฏธํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ์—ฐ์‚ฐ์„ ๋‹ค ๊ณ ๋ คํ•˜๋Š” ๋Œ€์‹ , ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‹คํ–‰๋˜๋Š” ์ง€๋ฐฐ์ ์ธ ์—ฐ์‚ฐ(dominant operation) ์— ์ดˆ์ ์„ ๋งž์ถ˜๋‹ค.ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์—..
์ธ๋„ค์ผ 2. ๋ฐฐ์—ด (Arrays) Codility Lesson ํ•œ๊ตญ์–ด ์ •๋ฆฌ๋ณธ (JavaScript ver.) ๋ฐฐ์—ด (Arrays)๋ฐฐ์—ด(Array)์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•ญ๋ชฉ์„ ํ•œ ๊ณณ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‡ผํ•‘ ๋ชฉ๋ก์„ ์ƒ๊ฐํ•ด๋ณด์ž. ๊ฐ๊ฐ์˜ ์ œํ’ˆ์„ ๊ฐœ๋ณ„์ ์ธ ํŽ˜์ด์ง€์— ๊ธฐ๋กํ•˜์ง€ ์•Š๊ณ , ํ•œ ํŽ˜์ด์ง€์— ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ด๋‹ค. ๋ฐฐ์—ด์€ ์ด๋Ÿฌํ•œ ๊ฐœ๋…๊ณผ ์œ ์‚ฌํ•˜๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, 1๋…„ ๋™์•ˆ์˜ ์ผ์ผ ๊ธฐ์˜จ์„ ๊ธฐ๋กํ•˜๋ ค ํ•œ๋‹ค๋ฉด, 365๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๊ธฐ๋ณด๋‹ค๋Š” ํ•˜๋‚˜์˜ ๋ฐฐ์—ด์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ๋” ์ ์ ˆํ•˜๋‹ค.1. ๋ฐฐ์—ด ์ƒ์„ฑ (Creating an Array)์šฐ๋ฆฌ๋Š” ์„ธ ๊ฐœ์˜ ์ œํ’ˆ์„ ํฌํ•จํ•˜๋Š” ์‡ผํ•‘ ๋ชฉ๋ก์„ ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฐ์—ด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.JavaScript ์ฝ”๋“œ:let shopping = ['bread', 'butter', 'cheese'];๋ฐฐ์—ด์˜ ๊ฐ ํ•ญ๋ชฉ์„ ์š”์†Œ(element) ๋ผ๊ณ  ํ•œ๋‹ค. ๋ฐฐ์—ด์€ ๋ฉ”๋ชจ๋ฆฌ..
์ธ๋„ค์ผ 1. ๋ฐ˜๋ณต (Iterations) Codility Lesson ํ•œ๊ตญ์–ด ์ •๋ฆฌ๋ณธ (JavaScript ver.) Codility ์—์„œ ์ œ๊ณตํ•˜๋Š” lesson์˜ open material ์„ ๋ชจ๋‘ ํ•œ๊ตญ์–ด๋กœ ์ •๋ฆฌํ•˜๋Š” ๋™์‹œ์—, ๋‚˜๋Š” JS ๋กœ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ๋ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠœํ† ๋ฆฌ์–ผ ์† ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ JS ์ฝ”๋“œ๋กœ ๋ฐ”๊ฟ” ์ •๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.100% ์™„๋ฒฝํ•œ ๋ฒˆ์—ญ๋ณธ์ด ์•„๋‹Œ ํ•„์ž์˜ ์ž…๋ง›๋Œ€๋กœ (๋ฒผ๋ฝ์น˜๊ธฐ์šฉ )ใ…Ž ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ด๋‹ค.lesson 17๊นŒ์ง€ ๋‹ค ๊ณต๋ถ€ํ•˜๊ณ  ๋ฌธ์ œ ํ’€๊ณ  ๋ธ”๋กœ๊ทธ์— ํฌ์ŠคํŒ…๊นŒ์ง€ ํ•˜๋Š”๊ฒŒ ๋ชฉํ‘œ!๋ฐ˜๋ณต๋ฌธ (Iterations)ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฐ˜๋ณต(iterating) ์ด๋ž€ ํ”„๋กœ๊ทธ๋žจ์˜ ์ผ๋ถ€๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด ์žฅ์—์„œ๋Š” ๋ฐ˜๋ณต์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ตฌ์กฐ์ธ for๋ฌธ๊ณผ while๋ฌธ์„ ๋‹ค๋ฃฌ๋‹ค.1.1. For ๋ฃจํ”„ (For Loops)์–ด๋–ค ์—ฐ์‚ฐ์„ ์ผ์ • ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜๊ฑฐ๋‚˜, ํŠน์ • ์ปฌ๋ ‰์…˜์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ๋ฐ˜๋ณตํ•˜๋ ค๋ฉด fo..
์ธ๋„ค์ผ ์ž๋ฃŒ๊ตฌ์กฐ(Data Structure) ์ด์ •๋ฆฌ ๋Œ€ํ‘œ์  ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ์ตœ๊ทผ์— ์ž๋ฃŒ๊ตฌ์กฐ ๋ถ„๋ฅ˜ ๋„์‹, ๋ฐฐ์—ด(array), ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(linked list), ์Šคํƒ(stack), ์žฌ๊ท€ํ•จ์ˆ˜์™€ ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ, ํ(queue), ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ๊ณผ ํ์— ๋Œ€ํ•ด ๋‹ค์‹œ ๊ณต๋ถ€ํ–ˆ๋‹ค. ์ด ์™ธ์—๋„ ํ•ด์‹œํ…Œ์ด๋ธ”, ๊ทธ๋ž˜ํ”„, ํŠธ๋ฆฌ, ํž™ ๋“ฑ ์ค‘์š”ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํฌํ•จํ•ด ์ค‘์š” ์ž๋ฃŒ๊ตฌ์กฐ 8๊ฐœ๋ฅผ ์ •๋ฆฌํ•ด๋ณด๋ คํ•œ๋‹ค. 0. ์ž๋ฃŒ๊ตฌ์กฐ ๋ถ„๋ฅ˜ ๋„์‹์ž๋ฃŒ๊ตฌ์กฐ๋Š” ํฌ๊ฒŒ ์„ ํ˜•(Linear) ์ž๋ฃŒ๊ตฌ์กฐ์™€ ๋น„์„ ํ˜•(Non-linear) ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ:๋ฐฐ์—ด, ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ์Šคํƒ, ํ ๋“ฑ์ด ๋Œ€ํ‘œ์ ํŠน์ง•: ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ์—ฐ์†์  ๋˜๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ์‚ฝ์ž…/์‚ญ์ œ ์—ฐ์‚ฐ์ด ํ•œ์ชฝ ๋ ๋˜๋Š” ์ค‘๊ฐ„์—์„œ ์ด๋ฃจ์–ด์ง๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ:ํŠธ๋ฆฌ, ํž™, ๊ทธ๋ž˜ํ”„ ๋“ฑ์ด ์žˆ์œผ๋ฉฐ, ๊ณ„์ธต์  ๋˜๋Š” ๋„คํŠธ์›Œํฌ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํŠน์ง•: ..
์ธ๋„ค์ผ ๋‹น๊ทผ์•Œ๋ฐ” Software Developer Intern - Frontend ์ตœ์ข…๋ฉด์ ‘ ํ›„๊ธฐ ์ด๋ฒˆํ•™๊ธฐ์— ๋“ค์–ด์„œ ์ง€์›์„œ๋ฅผ ์ข€ ๋„ฃ๊ณ  ์žˆ๋Š”๋ฐ, ๋„ˆ๋ฌด ๋น ๋ฅด๊ฒŒ ์ฒซ ์„œ๋ฅ˜ ํ†ต๊ณผ์ด์ž ์ตœ์ข… ๋ฉด์ ‘์˜ ๊ธฐํšŒ๊ฐ€ ์™”๋‹ค. ์ทจ์—…์ด ์—„์ฒญ ๊ธ‰ํ•œ ์‹œ๊ธฐ๋Š” ์•„๋‹ˆ๋ผ์„œ, ๊ทธ์ € ๋ฉด์ ‘์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ ์ž์ฒด๋งŒ์œผ๋กœ ๊ฐ์‚ฌํ–ˆ๋‹ค. ๋‹ค์Œ๊ต์‹œ ๊ธฐ๋ง๊ณ ์‚ฌ ๋ณด๊ณ  ์™€์„œ ์ด์–ด์„œ ์“ธ ์˜ˆ์ •..
์ธ๋„ค์ผ [ADHD ์•„๋™์„ ์œ„ํ•œ VR ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ] ์บก์Šคํ†ค ์ผ์ง€ 2 - ๋‚˜ํ™€๋กœ ๋ˆˆ๋ฌผํŒŒํ‹ฐํ•œ .. ์•„๋™ ์‹คํ—˜ ์ด์•ผ๊ธฐ โœ๏ธ ์–ด์ฉŒ๋‹ค ๋…ผ๋ฌธ์— ๋ฐœ์„ ๋“ค์˜€์„๊นŒ..?  ์šฐ๋ฆฌํŒ€์€ 1ํ•™๊ธฐ๋ฅผ ๋‚˜๋ฆ„ ์—ด์‹ฌํžˆ ๋ณด๋ƒˆ๋‹ค. ์•ž์œผ๋กœ ์–ผ๋งˆ๋‚˜ ๋” ๋งŽ์€๊ฑธ ํ•˜๊ฒŒ๋  ์ง€ ๋ชจ๋ฅธ ์ฒด... ๋งค๋ฒˆ ์–ด๋”œ๊ฐ€๋“  ์ƒˆ๋กœ์šด ์ผ์ด ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ฝ”๋‚œ(me)์„ ๋งŒ๋‚˜ ์ด๋ฒคํŠธ์˜ ์ถ•๋ณต์ด ๋์ด ์—†๋Š” ๋“ฏ ํ•˜๋‹ค..   ๋ชจ๋“  ๊ฒƒ์€ ๊ต์ˆ˜๋‹˜์ด ์–ด๋А ๋‚  ๊ฐ‘์ž๊ธฐ ์นดํ†ก์œผ๋กœ ๋…ผ๋ฌธ ๋‚ผ ๊ณณ์„ ์•Œ๋ ค์ฃผ์‹  ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์‹œ์ž‘๋˜์—ˆ๋‹ค. ์ด์ „์— '๋…ผ๋ฌธ ํ•œํŽธ ์จ์•ผ์ฃ ~' ๋ผ๊ณ  ํšŒ์˜์‹œ๊ฐ„์— ์ด์•ผ๊ธฐ๊ฐ€ ๋‚˜์˜ค๊ธด ํ–ˆ์—ˆ์ง€๋งŒ ..ใ…Žใ…Ž ๋”ฑ ์ด ์‹œ์ ๋ถ€ํ„ฐ ์šฐ๋ฆฌ๋Š” ๊ฐœ๋ฐœ์ค‘์ด๋˜ ๊ฒƒ์„ ๋งˆ๋ฌด๋ฆฌ ์ง€์–ด์•ผ ํ–ˆ๊ณ , ์‹คํ—˜ ์„ค๊ณ„์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์ด ์‹œ์ž‘ํ•˜์˜€๋‹ค. ์• ํ”Œ์•„์นด๋ฐ๋ฏธ์—์„œ๋‚˜ ํƒ€ ์•ฑ ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ๋ฅผ ํ• ๋•Œ ์œ ์ €ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•ด ๋งŽ์ด ๊ณต๋ถ€ํ•ด๋ณด์•˜๊ธฐ์—, ์‹คํ—˜ ์„ค๊ณ„๋Š” ๋‚ด๊ฐ€ ํ•˜๊ณ ์‹ถ๋‹ค๊ณ  ๋ง์”€๋“œ๋ ธ๋‹ค. VR์„ ์ด์šฉํ•œ ์‹คํ—˜์€ ์ฒ˜์Œ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์ด ์•Œ์•„๋ณด๊ณ , ํ”„๋กœํ† ์ฝœ์„ ์ •๋ง ์ž˜ ์งœ์•ผ๊ฒ ๋‹ค! ๊ณ ..
์ธ๋„ค์ผ [ADHD ์•„๋™์„ ์œ„ํ•œ VR ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ] ์บก์Šคํ†ค ์ผ์ง€ 1 - ์šฐ๋ฆฌํŒ€์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค ๐Ÿฅ ๐Ÿคท๐Ÿป‍โ™€๏ธ ๋„๋ฉ”์ธ ๋น„๋งŒ ๋‚˜๊ฐ€๋Š” ๋‚˜์˜ ๋ธ”๋กœ๊ทธ , ์™œ ์ด์ œ ๋Œ์•„์™”๋Š”๊ฐ€ ์•„๋Š” ์‚ฌ๋žŒ์€ ์•Œ๊ฒ ์ง€๋งŒ,, ๋‚ด ๋ธ”๋กœ๊ทธ์˜ ๋„๋ฉ”์ธ์€ kimhaeun.com ์ด๋‹ค. ์˜จ์„ธ์ƒ ๊น€ํ•˜์€๋‹˜๋“ค๊ป˜ ,, ์ฃ„์†กํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ๋…์ ์ค‘ .... ^^! ์ž‘๋…„ ์• ํ”Œ์•„์นด๋ฐ๋ฏธ ๊ทน ์ดˆ๋ฐ˜์— SWIFT ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋˜๊ฒŒ ๋งˆ์ง€๋ง‰ ๊ธ€๋กœ ๋œจ๋‹ˆ,... ๋ฌด๋ ค 1๋…„ ๋ฐ˜๋งŒ์— ์ด ๋ธ”๋กœ๊ทธ๋ฅผ ์ผ ๋‹ค.  ๋‚ด๊ฐ€ ์ •๋ง ๊ธ€๋กœ ๋‚จ๊ฒจ๋‘๊ณ  ์‹ถ์€ ๊ฒƒ์ด ์ƒ๊ฒผ๋Š”๋ฐ, ๊ทธ๊ฑด ๋ฐ”๋กœ ์ง€๊ธˆ ์กธ์—…๊ณผ์ œ๋กœ ํ•˜๊ณ  ์žˆ๋Š”!! ์บก์Šคํ†ค ๋””์ž์ธ์˜ ๊ณผ์ •์ด๋‹ค.!   ๐Ÿ˜Ž ์šฐ๋ฆฌํŒ€์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค ๋‚ด๊ฐ€ ์†ํ•œ ํŒ€์€ ์ด 4๋ช…์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. ๐Ÿง‘๐Ÿป‍๐Ÿ’ป ๐Ÿง‘๐Ÿป‍๐Ÿ’ป ๐Ÿง‘๐Ÿป‍๐Ÿ’ป ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป  ํ•œ๋™๋Œ€ํ•™๊ต ์ด์›ํ˜• ๊ต์ˆ˜๋‹˜ ๋žฉ์‹ค (https://sirl.handong.edu/)์— ์†Œ์†๋˜์–ด ์žˆ์œผ๋ฉฐ,  ํ˜„์žฌ [ADHD ์•„๋™์„ ์œ„ํ•œ V..
์ธ๋„ค์ผ [Swift] how to create multiple preview import SwiftUI struct LandmarkList: View { var body: some View { NavigationView { List(landmarks) { landmark in NavigationLink { LandmarkDetail(landmark: landmark) } label: { LandmarkRow(landmark: landmark) } } .navigationTitle("Landmarks") } } } struct LandmarkList_Previews: PreviewProvider { static var previews: some View { ForEach(["iPhone SE (2nd generation)", "iPhone XS Max"], id: \.self) {..
์ธ๋„ค์ผ [Swift] ๋ฐ˜๋ณต๋ฌธ์—์„œ id: \.id ์˜ ์˜๋ฏธ 1. id ์•ž์— \. ์ด ๋ถ™๋Š” ์ด์œ , ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•ด์„œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๋•Œ Key๋ฅผ ์ฐธ์กฐํ•˜๋Š”๋ฒ• List(landmarks, id: \.id) { landmark in LandmarkRow(landmark: landmark) } ํ•˜์ง€๋งŒ Landmark ์ฝ”๋“œ์— struct Landmark: Hashable, Codable, Identifiable { ๋‹ค์Œ๊ณผ ๊ฐ™์ด Identifiable์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด id key path๋Š” ์‚ญ์ œํ•ด๋„ ๋œ๋‹ค. Identifiable ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ id ํ”„๋กœํผํ‹ฐ๋ฅผ ์ง์ ‘ ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„ List์—์„œ ์š”์†Œ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด, key path๋ฅผ ๋”ฐ๋กœ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค! List(landmarks) { landmark in LandmarkRow(landmark: la..