๋ชฉ๋ก๐Ÿ’ก ์•Œ๊ณ ๋ฆฌ์ฆ˜ (4)

Hello, ๋‚˜๋‚˜'s world !

ํ(Queue) / ๋ฑ(Deque)

1. ํ(Queue) ํ•œ์ชฝ ๋์—์„œ๋งŒ ์ž๋ฃŒ๋ฅผ ๋„ฃ๊ณ , ๋‹ค๋ฅธํ•œ์ชฝ ๋์—์„œ๋งŒ ๋บ„์ˆ˜์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ FIFO(First In Firtst Out) ์„ ์ž…์„ ์ถœ ํ˜•์‹์ด๋‹ค. ์ผ์ฐจ์› ๋ฐฐ์—ด ํ•˜๋‚˜๋กœ ๊ตฌํ˜„๊ฐ€๋Šฅํ•˜๋‹ค. int queue[1000]; int begin = 0; int end = 0; //begin ~ end-1 ๊นŒ์ง€ ํฌํ•จ ํ๋„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ œ๊ณต๋˜๊ณ  ์žˆ๋‹ค. -> ๊ฐ O(1) ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ๊ฐ–๋Š”๋‹ค - C++ push ํ์— ์ž๋ฃŒ๋„ฃ๋Š” ์—ฐ์‚ฐ pop ํ์—์„œ ์ž๋ฃŒ๋ฅผ ๋นผ๋Š” ์—ฐ์‚ฐ front ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ์ž๋ฃŒ๋ฅผ ๋ณด๋Š” ์—ฐ์‚ฐ back ๊ฐ€์žฅ ๋’ค์— ์žˆ๋Š” ์ž๋ฃŒ๋Š” ๋ณด๋Š” ์—ฐ์‚ฐ empty ํ๊ฐ€ ๋น„์–ด์žˆ๋Š”์ง€ ์•„๋‹Œ์ง€ ํ™•์ธ size ํ์— ์ €์žฅ๋˜์–ด์žˆ๋Š” ์ž๋ฃŒ์˜ ๊ฐœ์ˆ˜ ์•Œ์•„๋ณด๊ธฐ - Java add() ํ์— ์ž๋ฃŒ๋„ฃ๋Š” ์—ฐ์‚ฐ remove() ํ์—์„œ ์ž๋ฃŒ๋ฅผ ๋นผ๋Š” ์—ฐ์‚ฐ ..

์‹œ๊ฐ„๋ณต์žก๋„

์‹œ๊ฐ„๋ณต์žก๋„ ๊ณต๊ฐ„๋ณต์žก๋„ ์ž…์ถœ๋ ฅ ์šฐ๋ฆฌ๋Š” ํ•œ์ •๋œ ์ž์›์„ ๊ฐ–๊ณ ์žˆ๋‹ค. ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•˜๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 64GB ํ•„์š”ํ•œ ์ž‘์—…์ด๋ฉด ๊ตฌ๋งคํ•˜๋ฉด๋œ๋‹ค. ํ•˜์ง€๋งŒ ๊ตฌ๋งคํ•ด๋„ 10์ผ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์ด๋ผ๋ฉด 10์ผ์ด ์†Œ์š”๋œ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„ > ๊ณต๊ฐ„๋ณต์žก๋„ ์ค‘์š”ํ•˜๋‹ค. 1. ์‹œ๊ฐ„๋ณต์žก๋„ Big Oํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ‘œ๊ธฐ. ex) O(1), O(N), O(N^3)...... ์ฝ”๋“œ๋ฅผ ๋ณด๊ธฐ์ „ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋ณด๊ณ  ์ˆ˜ํ–‰์‹œ๊ฐ„์„ ๊ณ„์‚ฐํ•œํ›„ ์ œํ•œ์‹œ๊ฐ„์•ˆ์— ๊ฐ€๋Šฅ์‹œ ๊ตฌํ˜„ ์ตœ์•…์˜ ๊ฒฝ์šฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋ƒ„ 1์–ต = 1์ดˆ (์‹ค์ œ๋กœ๋Š” 5์–ต์ •๋„) ex) O(N^3) = 1.25์–ต ๊ฐ€๋Šฅ -> O(1), O(N), O(N^2), O(N^3) ์ƒ์ˆ˜๋Š” ๋ฒ„๋ฆฐ๋‹ค. (ํฐ์ˆ˜๋“ค์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์ˆ˜๋Š” ๋ณ„ ์˜๋ฏธ์—†์Œ) ex) O(3N) = O(N), O(5) = O(1), ๋‘..