[Swift] ํ(Queue) ๊ตฌํ˜„ํ•˜๊ธฐ
ยท
๐Ÿ’ป CS/์ž๋ฃŒ๊ตฌ์กฐ
ํ ์„ ์ž…์„ ์ถœ(FIFO) : ๋จผ์ €๋“ค์–ด์˜จ ๋†ˆ์ด ๋จผ์ € ๋‚˜๊ฐ€๋Š” ์ž๋ฃŒ๊ตฌ์กฐ Swift ์—์„œ์˜ ๊ตฌํ˜„ struct Queue { private var queue: [T] = [] public var count: Int { return queue.count } public var isEmpty: Bool { return queue.isEmpty } public mutating func enqueue(_ element: T) { queue.append(element) } public mutating func dequeue() -> T? { return isEmpty ? nil : queue.removeFirst() } } ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฐฉ๋ฒ•์€ dequeue์‹œ์— element๋“ค์ด ์ž๋ฆฌ๋ฅผ ๋‹น๊ธฐ๋Š” ๊ณผ์ •์—์„œ O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ..
๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ
ยท
๐Ÿ’ป CS/์ž๋ฃŒ๊ตฌ์กฐ
๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ stack ์˜์—ญ ํ”„๋กœ๊ทธ๋žจ์ด ์ž๋™์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๋‹ค. ํ•จ์ˆ˜ํ˜ธ์ถœ๊ณผ ๊ด€๊ณ„๋˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋œ๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์ƒ์„ฑ๋˜๋ฉฐ, ํ•จ์ˆ˜๊ฐ€ ๋๋‚˜๋ฉด ๋ฐ˜ํ™˜๋œ๋‹ค. stack ์‚ฌ์ด์ฆˆ๋Š” ๊ฐ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ํ• ๋‹น๋˜์ง€๋งŒ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋  ๋•Œ stack ์‚ฌ์ด์ฆˆ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์–ด ๋Ÿฐํƒ€์ž„ ์‹œ stack ์‚ฌ์ด์ฆˆ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค. ๋ช…๋ น ์‹คํ–‰ ์‹œ ์ž๋™์œผ๋กœ ์ฆ๊ฐ€ or ๊ฐ์†Œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณดํ†ต ๋ฉ”๋ชจ๋ฆฌ์˜ ๋งˆ์ง€๋ง‰ ๋ฒˆ์ง€๋ฅผ ์ง€์ •ํ•œ๋‹ค. heap ์˜์—ญ ํ•„์š”์— ์˜ํ•ด ๋™์ ์œผ๋กœ ํ• ๋‹นํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๋‹ค. C์—์„œ malloc(), calloc() ๋“ฑ์˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ฐ’์— ์˜ํ•ด์„œ๋งŒ ์ฐธ์กฐ๋˜๋Š” ์˜์—ญ์ด๋‹ค. stack์˜์—ญ๊ณผ heap์˜์—ญ์€ ์‚ฌ์‹ค ๊ฐ™์€ ๊ณต๊ฐ„์„ ๊ณต์œ ํ•œ๋‹ค. heap์ด ๋ฉ”๋ชจ..
์บ์‹œ
ยท
๐Ÿ’ป CS/์šด์˜์ฒด์ œ
์บ์‹œ? ์บ์‹œ๋Š” ๋ฐ์ดํ„ฐ๋‚˜ ๊ฐ’์„ ๋ฏธ๋ฆฌ ๋ณต์‚ฌํ•ด ๋†“๋Š” ์ž„์‹œ ์žฅ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์บ์‹œ๋Š” ์ ‘๊ทผ์‹œ๊ฐ„์— ๋น„ํ•ด ์›๋ž˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•˜๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ๋‚˜ ๊ฐ’์„ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๋Š” ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์บ์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ๋ณต์‚ฌํ•ด๋‘๋ฉด ์ ‘๊ทผ ์‹œ๊ฐ„ ์—†์ด ๋” ๋น ๋ฅธ ์†๋„๋กœ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ์บ์‹ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด์ „์— ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ๊ณ„์‚ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์บ์‹ฑ์€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ• ๊นŒ? ์บ์‹œ์˜ ๋ฐ์ดํ„ฐ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ RAM๊ณผ ๊ฐ™์ด ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜๋“œ์›จ์–ด์— ์ €์žฅ๋œ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋  ์ˆ˜ ๋„ ์žˆ๋‹ค. ์บ์‹œ์˜ ์ฃผ ๋ชฉ์ ์€ ๋” ๋Š๋ฆฐ ๊ธฐ๋ณธ ์Šคํ† ๋ฆฌ์ง€ ๊ณ„์ธต์— ์ ‘๊ทผํ•ด์•ผํ•˜๋Š” ํ•„์š”๋ฅผ ์ค„์—ฌ์„œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์˜ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ๊ฒƒ์ด๋‹ค. ์†๋„๋ฅผ ์œ„ํ•ด ์šฉ๋Ÿ‰์„ ์ ˆ์ถฉํ•˜๋Š” ์บ์‹œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ..
OSI 7๊ณ„์ธต๊ตฌ์กฐ
ยท
๐Ÿ’ป CS/๋„คํŠธ์›Œํฌ
OSI 7 Layer? ์˜ค๋Š˜๋„ ์–ด๊น€์—†์ด ํ•˜๋‚˜๋„ ๋ชจ๋ฅด๋Š” ์šฉ์–ด๊ฐ€ ๋‚˜์™”๋‹ค. ์ข‹์€ ์˜์ƒ์ด ์žˆ์–ด ํ•œ๋ฒˆ ๊ณต๋ถ€ํ•ด๋ณด๋ คํ•œ๋‹ค. https://www.youtube.com/watch?v=1pfTxp25MA8 1. Physical Layer 0๊ณผ 1์˜ ๋‚˜์—ด์„ ์•„๋‚ ๋กœ๊ทธ ์‹ ํ˜ธ๋กœ ๋ฐ”๊พธ์–ด ์ „์„ ์œผ๋กœ ํ˜๋ ค๋ณด๋‚ด๊ณ , (encoding) ์•„๋‚ ๋กœ๊ทธ ์‹ ํ˜ธ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด 0๊ณผ 1์˜ ๋‚˜์—ด๋กœ ํ•ด์„ํ•˜์—ฌ (decoding) ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๋‘ ๋Œ€์˜ ์ปดํ“จํ„ฐ๊ฐ€ 0๊ณผ 1์˜ ๋‚˜์—ด์„ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ชจ๋“ˆ (module ํ•จ์ˆ˜) ์ธ์ฝ”๋”ฉ๊ณผ ๋””์ฝ”๋”ฉ data = 01010101 // ์ธ์ฝ”๋”ฉ (Input : data, Output : signal) Signal encode(data) -> ์•„๋‚ ๋กœ๊ทธ ์‹ ํ˜ธ { .... } // ๋””์ฝ”๋”ฉ (Input : signal, Ou..
JerryiOS
'๐Ÿ’ป CS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)