๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[D+22] Linked List ๊ตญ๋น„์ง€์› D+22 - Linked List - Linked List • ์ •์˜ ๊ธฐ์กด์— ์šฐ๋ฆฌ๊ฐ€ ๋ฐฐ์šด ๋ฐฐ์—ด์€ ์—ฐ๊ฒฐ๋˜์–ด ๋ถ™์–ด์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ ‘๊ทผํ•˜๊ธฐ์ข‹์œผ๋ฉฐ, ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๊ณ ์ •์ ์ธ ๋ฐ์ดํ„ฐ์— ์‚ฌ์šฉ์ด ์šฉ์ดํ•œ ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐฐ์—ด์—๋„ ๋‹จ์ ์ด ์กด์žฌํ•˜๋Š”๋ฐ ๋ฐ”๋กœ ์ค‘๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๋นผ๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ ์—ฐ์‚ฐ์ด๋‚˜ ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ธฐ ์‰ฌ์šฐ๋ฉฐ ๋ฐฐ์—ด๊ธ” ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •์ ์ธ ํŠน์ง•์œผ๋กœ ์ธํ•ด ์ถ”ํ›„์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ฌ์ง€ ๋ชฐ๋ผ ์‚ฌ์ด์ฆˆ๋ฅผ ํฌ๊ฒŒ์žก์•„ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‚ญ๋น„๋  ์—ผ๋ ค๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฐ์—ด์˜ ๋ฌธ์ œ์ ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ”๋กœ Linked List๊ฐ€ ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. • ๊ตฌ์กฐ Linked List๋Š” Data์™€ ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์ฐธ๊ณ ๊ฐ’์„ ๋‹ด๊ณ ์žˆ๋Š” ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ• ๋•Œ ๋งˆ๋‹ค ๋…ธ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉฐ ๋™์‹œ์— ์ด์ „ ๋…ธ๋“œ๊ฐ€ ์ƒˆ.. 2022. 10. 24.
[D+22] ์ฝ”๋”ฉ๋ฐ์ด ๊ตญ๋น„์ง€์› D+22 - ์ฝ”๋”ฉ๋ฐ์ด - ์ฝ”๋”ฉ๋ฐ์ด Q) Linked List๋ฅผ ๊ตฌํ˜„ํ•˜์‹œ์˜ค. • Main.java public class Main { // ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๋ฅผ getํ•˜๋Š” ํ•จ์ˆ˜ public static Node getLastNode(Node head) { Node lastNode = head; while(lastNode.getNext() != null) { lastNode = lastNode.getNext(); } return lastNode; } // ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ํ•จ์ˆ˜ public static void InsertNode(Node head, Node newNode) { Node lastNode = null; // 1. ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๋ฅผ ์ฐพ๋Š”๋‹ค. lastNode = getLastNode(head); //.. 2022. 10. 22.
[D+21] ์ƒ์† ๊ต์žฌ์ •๋ฆฌ, ์ธํ„ฐํŽ˜์ด์Šค ๊ตญ๋น„์ง€์› D+21 - ์ƒ์† ๊ต์žฌ์ •๋ฆฌ, ์ธํ„ฐํŽ˜์ด์Šค - ์ƒ์† ๊ต์žฌ์ •๋ฆฌ • ์ƒ์† - ์ƒ์†์€ ์žฌํ™œ์šฉ๊ณผ ๊ณตํ†ต๋œ ๊ทœ์•ฝ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ๋ฌธ๋ฒ•์ด์ž ๊ฐ์ฒด ์ง€ํ–ฅ์˜ ํŠน์ง•์ด๋‹ค. - ๊ณตํ†ต๋œ ๋ถ€๋ถ„์„ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ์ƒ์†ํ•˜๋ฉด ์ˆ˜ํ‰์ ์ธ ํ™•์žฅ์ด ๋ฐœ์ƒ๋  ๋•Œ ๊ณตํ†ต๋œ ๋ถ€๋ถ„์„ ๋‹ค์‹œ ๋„ฃ์–ด์ฃผ์ง€ ์•Š์•„๋„ ๋œ๋‹ค. - ์ƒ์†์„ ์žฌํ™œ์šฉ์ธก๋ฉด์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ˆ˜ํ‰ ํ™•์ •์ด ์กด์žฌํ•ด์•ผํ•˜๋ฉฐ, ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๋ณผ๋ฅจ์ด ์–ด๋Š์ •๋„ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค. • ์–ด๋…ธํ…Œ์ด์…˜ - ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ์–ด๋–ค ์ •๋ณด๋ฅผ ์ฃผ๋Š” ๊ฒƒ => ์ปดํŒŒ์ผ์‹œ์— ํŠน์ •ํ•œ ์•ก์…˜์„ ์ทจํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ public class Tank extends Unit { @Override public void Attack() { Pung(); } public void Pung() { System.out.println("ํƒฑํฌ.. 2022. 10. 20.
[D+20] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํ™œ์šฉ ๊ตญ๋น„์ง€์› D+20 - ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํ™œ์šฉ - ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํ™œ์šฉ #1. ์–ธ์–ด ํŠน์„ฑ ํ™œ์šฉํ•˜๊ธฐ • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์œ ํ˜• - ๋ช…๋ นํ˜• ์–ธ์–ด(Imperative Language) : ์ปดํ“จํ„ฐ๊ฐ€ ๋™์ž‘ํ•ด์•ผํ•  ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๋Š” ๊ตฌ๋ฌธ์— ์ค‘์ ์„ ๋‘” ๋ฐฉ์‹ - ํ•จ์ˆ˜ํ˜• ์–ธ์–ด(Functional Language) : ํ•จ์ˆ˜์˜ ์‘์šฉ์„ ๊ฐ•์กฐํ•˜๋ฉด์„œ ์ž๋ฃŒ์˜ ์ฒ˜๋ฆฌ๋Š” ์ˆ˜ํ•™์ ์ธ ํ•จ์ˆ˜์˜ ์—ฐ์‚ฐ์œผ๋กœ ์ทจ๊ธ‰ํ•˜๊ณ , ์ƒํƒœ์™€ ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ๋Š” ๋ฉ€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹ ex) LISP, Scala- ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด(Object - Oriented Language) : ๊ฐ์ฒด ๊ฐ„์˜ ๋ฉ”์‹œ์ง€ ํ†ต์‹ ์„ ์ด์šฉํ•˜์—ฌ ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹ex) JAVA, C++ ์ปดํŒŒ์ผ ์–ธ์–ด(Compile Language) - ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ชจ์•„์„œ object-code๋ฅผ ๋งŒ๋“ ๋‹ค. - ์ „์ฒด์†Œ์Šค.. 2022. 10. 20.
[D+19] ์˜ค๋ฒ„๋ผ์ด๋”ฉ๊ณผ ์ƒ์†๊ด€๊ณ„ ๊ตญ๋น„์ง€์› D+19 - ์˜ค๋ฒ„๋ผ์ด๋”ฉ๊ณผ ์ƒ์†๊ด€๊ณ„ - ์˜ค๋ฒ„๋ผ์ด๋”ฉ๊ณผ ์ƒ์†๊ด€๊ณ„ ์˜ค๋ฒ„๋ผ์ด๋”ฉ - ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํŠน์„ฑ์ค‘ ๋‹คํ˜•์„ฑ์— ํ•ด๋‹น๋œ๋‹ค. - ๋‹คํ˜•์„ฑ : ๋ณธ์ฒด๋Š” ํ•˜๋‚˜์ธ๋ฐ ํ˜•ํƒœ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ - ์˜ค๋ฒ„๋ผ์ด๋”ฉ์€ ์ƒ์†๊ด€๊ณ„์— ์žˆ๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค์—์„œ ์ด๋ฏธ ์ •์˜๋˜์–ด์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ž์‹ ํด๋ž˜์Šค์—์„œ ๊ฐ™์€ ๋ฐฉ์‹์„ ๊ฐ€์ง€๋Š” ๋ฉ”์†Œ๋“œ๋กœ ๋‹ค์‹œ ์žฌ์ •์˜ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. - ์ƒ์†๋ฐ›์€ ๋ถ€๋ชจ ํด๋ž˜์Šค๋กœ ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ƒ์†๊ด€๊ณ„ // ๋ถ€๋ชจ ํด๋ž˜์Šค : TV // ์ž์‹ ํด๋ž˜์Šค : SmartTV TV tv = new SmartTV(ipAddress, channel);// O ์ƒ์†๊ด€๊ณ„์—์„œ ๋ถ€๋ชจํด๋ž˜์Šค์˜ ์ฐธ์กฐ๋ณ€์ˆ˜๋กœ ์ž์‹ํด๋ž˜์Šค ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ถ€๋ชจํด๋ž˜์Šค TV์˜ ์ฐธ์กฐ๊ฐ’๊ณผ ์ƒ์†๋œ ์ž์‹ ํด๋ž˜์Šค์ธ SmartTV์˜ ์ฐธ์กฐ๊ฐ’์ด ๋™์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจํด๋ž˜์Šค์˜ ์ฐธ์กฐ๋ณ€์ˆ˜.. 2022. 10. 19.
[D+18] ์ƒ์† ๊ตญ๋น„์ง€์› D+18 - ์ƒ์† - ์ƒ์† ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ํ”ํžˆ ์•Œ๊ณ ์žˆ๋Š” ์šฉ์–ด์˜ ํ•ด์„์ฐจ์›์—์„œ ์ƒ์†์€ ์ž์‹์—๊ฒŒ ๋ฌผ๋ ค์ค€๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒ์†์˜ ์˜๋ฏธ๋„ ํ‹€๋ฆฐ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ ์•Œ์•„์•ผํ•  ๊ธฐ๊ณ„์ ์ธ ์˜๋ฏธ๋กœ ํ•ด์„ํ•˜๋ฉด ์ƒ์†์€ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์˜ ๊ฒฐํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰, ์ƒ์†์€ Heap์˜์—ญ์—์„œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ฒฐํ•ฉ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒ์†์˜ ์žฅ/๋‹จ์  ๋จผ์ € ์ƒ์†์˜ ์žฅ์ ์€ ์žฌํ™œ์šฉ์ ์ธ ์ธก๋ฉด์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•ด ๋ณด์ž๋ฉด, ๋งŒ์•ฝ ์šฐ๋ฆฌ๊ฐ€ ๋™๋ฌผ๋ณ‘์› ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋•Œ ์ƒ์†์ด ์—†์„ ๊ฒฝ์šฐ์—” ๋™๋ฌผ๋“ค์€ ์ง„์ฐฐ์„ ๋ฐ›์„ ๋•Œ ํ•ญ์ƒ ํ”ผ๊ฒ€์‚ฌ๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๋Š”๋ฐ ๋“ค์–ด์˜ค๋Š” ๋™๋ฌผ๋งˆ๋‹ค ํ”ผ๊ฒ€์‚ฌ๋ฅผ ๋งค๋ฒˆ ๋„ฃ์–ด์•ผํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์šฐ์ธก ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋งค๋ฒˆ ํ”ผ๊ฒ€์‚ฌ๋ฅผ ๋™๋ฌผ์•ˆ์— ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ”ผ๊ฒ€์‚ฌ๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“  ๋‹ค์Œ์— ๋™๋ฌผ๋“ค์—๊ฒŒ ์ƒ์†ํ•ด์ค€๋‹ค๋ฉด .. 2022. 10. 18.