๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“š Computer Science/Data Structure10

[์ž๋ฃŒ๊ตฌ์กฐ] ํ(Queue) ํ(Queue) ์„ ์ž…์„ ์ถœ(First-In-First-Out, FIFO) ์›์น™์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ๊ตฌ์กฐ ํ•œ์ชฝ ๋์—์„œ๋งŒ ์‚ฝ์ž…์ด ์ด๋ฃจ์–ด์ง€๊ณ , ๋‹ค๋ฅธ ํ•œ์ชฝ ๋์—์„œ๋Š” ์‚ญ์ œ ์—ฐ์‚ฐ๋งŒ ์ด๋ฃจ์–ด์ง€๋Š” ์œ ํ•œ ์ˆœ์„œ ๋ฆฌ์ŠคํŠธ ์ผ์ƒ์ƒํ™œ์—์„œ ์ค„์„ ์„œ์„œ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌ ๋Œ€๊ธฐ์—ด์ด๋‚˜ ์ž‘์—… ์Šค์ผ€์ค„๋ง ๋“ฑ์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ ์‚ฝ์ž… ๋ฐ ์‚ญ์ œ์— O(1), ํƒ์ƒ‰์— O(n) ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง ํ(Queue)์˜ ๊ตฌํ˜„ ํ๋Š” ๋Œ€๊ฐœ ๋ฐฐ์—ด์ด๋‚˜ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„ ๋ฐฐ์—ด์„ ์ด์šฉํ•˜๋Š” ๊ฒฝ์šฐ, front์™€ rear๋ผ๋Š” ๋‘ ๊ฐœ์˜ ์ธ๋ฑ์Šค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ์˜ ์‹œ์ž‘๊ณผ ๋์„ ๊ฐ€๋ฆฌํ‚ด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ์—๋Š” rear ๋ณ€์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•  ๋•Œ์—๋Š” front ๋ณ€์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œ.. 2023. 3. 6.
[์ž๋ฃŒ๊ตฌ์กฐ] ์Šคํƒ(Stack) ์Šคํƒ(Stack) ํ•œ์ชฝ ๋์—์„œ๋งŒ ์ž๋ฃŒ๋ฅผ ๋„ฃ๊ณ  ๋บ„ ์ˆ˜ ์žˆ๋Š” LIFO(Last In First Out) ํ˜•์‹์˜ ์ž๋ฃŒ ๊ตฌ์กฐ LIFO(ํ›„์ž…์„ ์ถœ): ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜๊ฐ ์žฌ๊ท€์ ์ธ ํ•จ์ˆ˜, ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์‚ฌ์šฉ ์›น๋ธŒ๋ผ์šฐ์ € ๋ฐฉ๋ฌธ ๊ธฐ๋ก ๋“ฑ์— ์‚ฌ์šฉ ์‚ฝ์ž… ๋ฐ ์‚ญ์ œ์— O(1), ํƒ์ƒ‰์— O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง ์Šคํƒ์˜ ๊ตฌ์กฐ ์Šคํƒ ์ƒ๋‹จ(stack top): ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ—๋ถ€๋ถ„, ์Šคํƒ์—์„œ ์ž…์ถœ๋ ฅ์ด ์ด๋ฃจ์–ด์ง€๋Š” ๋ถ€๋ถ„ ์Šคํƒ ํ•˜๋‹จ(stack bottom): ์Šคํƒ์˜ ๊ฐ€์žฅ ์•„๋žซ๋ถ€๋ถ„ ์š”์†Œ(element): ์Šคํƒ์— ์ €์žฅ๋˜๋Š” ๊ฒƒ ๊ณต๋ฐฑ ์Šคํƒ(empty stack): ๋น„์–ด์žˆ๋Š” ์Šคํƒ ํฌํ™” ์Šคํƒ(full stack): ํฌํ™” ์ƒํƒœ์˜ ์Šคํƒ ์Šคํƒ์˜ ์—ฐ์‚ฐ pop(): ์Šคํƒ์—์„œ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ํ•ญ๋ชฉ ์ œ๊ฑฐ push(element): ์š”์†Œ๋ฅผ ์Šค.. 2023. 2. 14.
[์ž๋ฃŒ๊ตฌ์กฐ] ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked List) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked List) ๊ฐ ๋…ธ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ์™€ ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ํ•œ ์ค„๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐฐ์—ด์˜ ๊ณ ์ • ํฌ๊ธฐ์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ ์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅ๋˜์–ด ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ๊ฒฐ ํ•„์š” ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ํ‘œํ˜„ Head๋Š” ๋ฆฌ์ŠคํŠธ์˜ ์ฒ˜์Œ์„ ๋‚˜ํƒ€๋ƒ„ ๋…ธ๋“œ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” Next ํฌ์ธํ„ฐ๋กœ ๊ตฌ์„ฑ ๊ฐ ๋…ธ๋“œ๋Š” Next ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ๋‹ค์Œ ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๋Š” null์„ ๊ฐ€๋ฆฌ์ผœ ๋ฆฌ์ŠคํŠธ์˜ ๋์„ ๋‚˜ํƒ€๋ƒ„ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ์ข…๋ฅ˜ 1. ๋‹จ์ผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๊ฐ ๋…ธ๋“œ๋‹น ํ•œ ๊ฐœ์˜ ํฌ์ธํ„ฐ๋ฅด ๊ฐ€์ง€๊ณ  ์žˆ์Œ ํฌ์ธํ„ฐ๋Š” ๋‹ค์Œ ๋…ธ๋“œ์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ด 2. ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๊ฐ ๋…ธ๋“œ๋‹น ๋‘ ๊ฐœ์˜ ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ ํฌ์ธํ„ฐ๋Š” ๊ฐ๊ฐ ์ด์ „ ๋…ธ๋“œ์™€ ๋‹ค์Œ๋…ธ๋“œ์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ด 3... 2023. 2. 10.
[์ž๋ฃŒ๊ตฌ์กฐ] ๋ฐฐ์—ด(Array)์ด๋ž€? ๋ฐฐ์—ด(Array) ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ๋ชจ์Œ ๊ฐ™์€ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ์š”์†Œ(elemnet): ๋ฐฐ์—ด์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ๊ฐ์˜ ๊ฐ’ ์ธ๋ฑ์Šค(index): ๋ฐฐ์—ด์—์„œ์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ˆซ์ž (0๋ถ€ํ„ฐ ์‹œ์ž‘) ๋ฐฐ์—ด ํ‘œํ˜„ ํฌ๊ธฐ๊ฐ€ 5์ธ Intํ˜• ๋ฐฐ์—ด array๋ฅผ ์„ ์–ธ swift var array: [Int] = [1, 2, 3, 4, 5] python array = [1, 2, 3, 4, 5] C int array[5] = {1, 2, 3, 4, 5}; Java Int[] array = {1, 2, 3, 4, 5}; ๋‹ค์ฐจ์› ๋ฐฐ์—ด (Multidimensional Array) index๊ฐ€ 2๊ฐœ ์ด์ƒ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด ๋‹ค์ฐจ์› ๋ฐฐ์—ด์€ ์ธ๋ฑ์Šค๋ฅผ 2๊ฐœ๋ถ€ํ„ฐ ์ตœ๋Œ€ n๊ฐœ๊นŒ์ง€ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ //2์ฐจ์› var array.. 2023. 2. 10.
๋ฐ˜์‘ํ˜•