์ „์ฒด ๊ธ€ 35

[์ž๋ฃŒ๊ตฌ์กฐ] ํ(QUEUE)

ํ(Queue)๋ž€? ์„œ๋ธŒ์›จ์ด์— ์ƒŒ๋“œ์œ„์น˜๋ฅผ ์‚ฌ๋ ค๊ณ  ์‚ฌ๋žŒ๋“ค์ด ์ค„์„ ์„œ๊ณ  ์žˆ๋‹ค. ์ด๋•Œ ์ด ์‚ฌ๋žŒ๋“ค์ด ์„œ์žˆ๋Š” ์ค„์„ ์˜์–ด๋กœ ๋ญ๋ผ ํ‘œํ˜„ํ• ๊นŒ? ๋ฐ”๋กœ ํ(queue) ์ด๋‹ค. 5๋ช…์˜ ์‚ฌ๋žŒ์ด ์ƒŒ๋“œ์œ„์น˜๋ฅผ ์‚ฌ๋ ค๊ณ  ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ• ๋•Œ, ์ƒŒ๋“œ์œ„์น˜๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ์‚ด ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์€ ํ(queue) ์˜ ๋งจ ์•ž (front) ์ฒซ๋ฒˆ์งธ ์‚ฌ๋žŒ์ผ ๊ฒƒ์ด๊ณ , ๋งˆ์ง€๋ง‰์œผ๋กœ ์ƒŒ๋“œ์œ„์น˜๋ฅผ ๊ตฌ๋งค ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์€ ๊ฐ€์žฅ ๋Šฆ๊ฒŒ ์˜จ 5๋ฒˆ์งธ ์‚ฌ๋žŒ์ผ ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ๊ตฌ๋งค๊ฐ€ ๋๋‚œ ์ฒซ๋ฒˆ์งธ ์‚ฌ๋žŒ์€ ์ƒŒ๋“œ์œ„์น˜๋ฅผ ๋“ค๊ณ  ํ(queue) ๋ฅผ ๋ฒ—์–ด๋‚  ๊ฒƒ์ด๊ณ , ๋งŒ์•ฝ ์ƒˆ๋กœ์šด ์‚ฌ๋žŒ์ด ์ƒŒ๋“œ์œ„์น˜๋ฅผ ๊ตฌ๋งคํ•˜๋ ค ์™”๋‹ค๋ฉด ๋งˆ์ง€๋ง‰ ๋‹ค์„ฏ๋ฒˆ์งธ ์‚ฌ๋žŒ ๋’ค (rear) ์— ์ค„์„ ์„œ์•ผ ํ•  ๊ฒƒ์ด๋‹ค. Queue ์—ญ์‹œ ์ด ๊ฒฝ์šฐ์™€ ๊ฐ™์€ ์„ ์ž…์„ ์ถœ(First in, First Out)๋ฐฉ์‹์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ..

Basic Operators

์—ฐ์‚ฐ์ž(operator)๋Š” ๊ฐ’์„ ์ฒดํฌ,๋ณ€๊ฒฝ,๋˜๋Š” ๊ฒฐํ•ฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐํ˜ธ ๋˜๋Š” ๊ตฌ(ๅฅ)์ด๋‹ค. ์ˆ ์–ด (Terminology) ๋‹จํ•ญ ์—ฐ์‚ฐ์ž: -a, !b ์ดํ•ญ ์—ฐ์‚ฐ์ž: 2 + 3, 3 * 4 ์‚ผํ•ญ ์—ฐ์‚ฐ์ž: (a ? b : c) a๊ฐ€ ์ฐธ์ด๋ฉด b ์•„๋‹ˆ๋ฉด c ๋Œ€์ž… ์—ฐ์‚ฐ์ž (Assignment Operator) (a = b) ๋Š” b ์˜ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” ๋˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. let b = 10 var a = 5 a = b // a is now equal to 10 NOTEโ—๏ธ if x = y ๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ Swift์—์„œ๋Š” ๋“ฑํ˜ธ ์—ฐ์‚ฐ์ž(==)๊ฐ€ ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•  ๊ณณ์— ์‹ค์ˆ˜๋กœ ํ• ๋‹น ์—ฐ์‚ฐ์ž(=)๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ฐฉ์ง€ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž (Arithmetic Operators) Swift๋Š” ๋ชจ๋“  ..

๐Ÿฆ… Swift 2022.05.15

The Basics

์ƒ์ˆ˜์™€ ๋ณ€์ˆ˜ (Constants and Variables) ์ƒ์ˆ˜(let)์™€ ๋ณ€์ˆ˜(var)๋Š” ์ด๋ฆ„(name)๊ณผ ํŠน์ • ํƒ€์ž…("kiwi": String)์˜ ๊ฐ’์„ ์—ฐ๊ฒฐํ•œ๋‹ค. let name = "kiwi" var name = "kiwi"์ƒ์ˆ˜๋Š” ์ฒ˜์Œ ๊ฐ’์„ ์„ค์ •ํ•ด ์ฃผ๋ฉด ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅ ํ•˜์ง€๋งŒ, ๋ณ€์ˆ˜๋Š” ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅ ํ•˜๋‹ค. NOTEโ—๏ธ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์ˆ˜(let)๋กœ ์„ ์–ธ์„ ํ•ด์ค€๋‹ค. ๋ณ€์ˆ˜๋Š” ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•  ๋•Œ๋งŒ ํ•ด์ค€๋‹ค. (์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ƒ์ˆ˜๋กœ ์„ ์–ธ๋œ ๊ฒฝ์šฐ ๋ณ„๋„์˜ ์ตœ์ ํ™”๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ, ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋นจ๋ผ์ง) ํƒ€์ž… ๋ช…์‹œ(Type Annotations) ์ƒ์ˆ˜ ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ์ข…๋ฅ˜๋ฅผ ๋ช…ํ™•ํžˆ ํ•˜๊ธฐ ์œ„ํ•ด ํƒ€์ž… ๋ช…์‹œ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ƒ์ˆ˜ ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋‹น์‹œ์— ์ดˆ๊ธฐ๊ฐ’์„ ์ง€์ •ํ•œ๋‹ค๋ฉด ํƒ€์ž…์„ ์œ ์ถ”ํ•  ..

๐Ÿฆ… Swift 2022.05.15

์ž์ฃผ์“ฐ๋Š” git ๋ช…๋ น์–ด

git init : ๊นƒ ์ดˆ๊ธฐํ™” git config --global user.name "์œ ์ € ์ด๋ฆ„" : ๊นƒ ์‚ฌ์šฉ์ž ์ด๋ฆ„ ์„ค์ • git config --global user.email "์ด๋ฉ”์ผ ์ฃผ์†Œ" : ๊นƒ ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ ์„ค์ • git config --global core.editor "vim" : ์ปค๋ฐ‹ ํŽธ์ง‘์—๋””ํ„ฐ๋ฅผ vim์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ git add ํŠน์ •ํŒŒ์ผ๋ช… : ํŠน์ •ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง• ํ•˜๊ธฐ git add . : ์ „์ฒด ํŒŒ์ผ ์Šคํ…Œ์ด์ง• ํ•˜๊ธฐ git commit -m "๋ฉ”์„ธ์ง€ ๋‚ด์šฉ" : ๋ฉ”์„ธ์ง€์™€ ํ•จ๊ป˜ ์ปค๋ฐ‹ํ•˜๊ธฐ git commit -am "๋ฉ”์„ธ์ง€ ๋‚ด์šฉ" : ์Šคํ…Œ์ด์ง•๊ณผ ์ปค๋ฐ‹์„ ๋ฉ”์„ธ์ง€์™€ ํ•จ๊ป˜ ์˜ฌ๋ฆฌ๊ธฐ git commit --amend : ๋ฐฉ๊ธˆ ์ปค๋ฐ‹ํ•œ ๋ฉ”์„ธ์ง€ ์ˆ˜์ •ํ•˜๊ธฐ git branch : ๋ธŒ๋žœ์น˜ ํ™•์ธ git branch ๋ธŒ๋žœ์น˜..

๐Ÿ€ etc 2022.04.12

Git ๊ฐœ๋… / ์šฉ์–ด ์ •๋ฆฌ

master git์ด ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ branch ์ด๋‹ค. ์ด ๊ณณ์— ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์ถ”๊ฐ€ ํ•œ๋‹ค๊ฑฐ๋‚˜, ์ถ”๊ฐ€ํ•œ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜์—ฌ ๊ทธ ๋‚ด์šฉ์„ ์ €์žฅ(์ปค๋ฐ‹, Commit)ํ• ์ˆ˜ ์žˆ๋‹ค. branch ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ชจ์–‘์œผ๋กœ ๋ถ„๊ธฐ ํ•˜์—ฌ ์ž‘์—…์„ ์‹คํ–‰ ํ•ด์•ผ ํ• ๋•Œ ๋…๋ฆฝ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ํ–‰ํ•ด์•ผ ํ• ๋•Œ ์‚ฌ์šฉ ํ•ด์•ผ ํ• ๋•Œ merge ๋‘ ๋ธŒ๋žœ์น˜๋ฅผ ํ•œ๊ฐœ์˜ ์ปค๋ฐ‹์— ์ด์–ด ๋ถ™์ธ๋‹ค. ๋ธŒ๋žœ์น˜ ์‚ฌ์šฉ ๋‚ด์—ญ์„ ๋‚จ๊ฒจ์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ ํ•œ๋‹ค. rebase ํ•œ ์ค„๋กœ ๊น”๋”ํžˆ ์ •๋ฆฌ๋œ ๋‚ด์—ญ์„ ์œ ์ง€ํ•˜๊ธฐ ์›ํ•  ๋•Œ ์ ํ•ฉํ•˜๋‹ค. Working directory untracked vs tracked : Add ๋œ ๋‚ด์—ญ์˜ ์กด์žฌ ์—ฌ๋ถ€ git add ๋ฅผ ํ†ตํ•˜์—ฌ staging area ๋กœ ์ด๋™ Staging area ์ปค๋ฐ‹์„ ์ค€๋น„ํ•˜๋Š” ๋‹จ๊ณ„ git commit ์„ ํ†ตํ•˜์—ฌ..

๐Ÿ€ etc 2022.04.11