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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ199

[0x08] ์Šคํƒ์˜ ํ™œ์šฉ(์ˆ˜์‹์˜ ๊ด„ํ˜ธ ์Œ) ์ˆ˜์‹์˜ ๊ด„ํ˜ธ ์Œ ๊ด„ํ˜ธ์Œ์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ์ฒดํฌ ๊ด€์ฐฐ ๊ด„ํ˜ธ 1์ข…๋ฅ˜ ๊ด„ํ˜ธ 2์ข…๋ฅ˜ → ์—ฐ์†๋œ ๊ด„ํ˜ธ ์‚ญ์ œ๋Š” ๊ฐ€๋Šฅ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๋ฌธ์ž์—ด์„ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฝ์–ด๋‚˜๊ฐˆ ๋•Œ, ๋‹ซ๋Š” ๊ด„ํ˜ธ๋Š” ๋‚จ์•„์žˆ๋Š” ๊ด„ํ˜ธ ์ค‘์—์„œ ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋“ค์–ด์˜จ ์—ฌ๋Š” ๊ด„ํ˜ธ์™€ ์ง์„ ์ง€์–ด ์—†์• ๋ฒ„๋ฆฌ๋Š” ๋ช…๋ น์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด๋„ ๋œ๋‹ค 2023. 6. 26.
[0x07] ๋ฑ ์ •์˜์™€ ์„ฑ์งˆ ์ •์˜ double-ended queue ์–‘์ชฝ ๋์—์„œ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ์ „๋ถ€ ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ ์„ฑ์งˆ ์›์†Œ์˜ ์ถ”๊ฐ€์™€ ์ œ๊ฑฐ : O(1) ์ œ์ผ ์•ž/๋’ค์˜ ์›์†Œ ํ™•์ธ : O(1) ์ œ์ผ ์•ž/๋’ค์ด ์•„๋‹Œ ๋‚˜๋จธ์ง€ ์›์†Œ๋“ค์˜ ํ™•์ธ/๋ณ€๊ฒฝ์ด ์›์น™์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅ ์ธ๋ฑ์Šค๋กœ ์›์†Œ ์ ‘๊ทผ ๊ฐ€๋Šฅ ๊ธฐ๋Šฅ๊ณผ ๊ตฌํ˜„ const int MAX = 1e7; int data[2*MAX + 1]; int head = MAX, tail = MAX; // ์‹œ์ž‘ ์ง€์ ์„ ๋ฐฐ์—ด์˜ ์ค‘๊ฐ„์œผ๋กœ : ์•ž๋’ค๋กœ ํ™•์žฅ // head : ์‹œ์ž‘. tail : ๋‹ค์Œ์— ๋“ค์–ด๊ฐˆ ์›์†Œ์˜ ์ž๋ฆฌ void push_front(int x) data[--head] = x; void push_back(int x) data[tail++] = x; void pop_front() head++; v.. 2023. 6. 26.
[0x06] ํ ์ •์˜์™€ ์„ฑ์งˆ ์ •์˜ ํ•œ์ชฝ ๋์—์„œ ์›์†Œ๋ฅผ ๋„ฃ๊ณ  ๋บ„ ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์„ฑ์งˆ ์›์†Œ์˜ ์ถ”๊ฐ€์™€ ์ œ๊ฑฐ : O(1) ์ œ์ผ ์•ž/๋’ค์˜ ์›์†Œ ํ™•์ธ : O(1) ์ œ์ผ ์•ž/๋’ค์ด ์•„๋‹Œ ๋‚˜๋จธ์ง€ ์›์†Œ๋“ค์˜ ํ™•์ธ/๋ณ€๊ฒฝ์ด ์›์น™์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅ ๊ธฐ๋Šฅ๊ณผ ๊ตฌํ˜„ const int MAX = 1e7; int data[MAX]; int head = 0, tail = 0; void push(int x) data[tail++] = x; void pop() head++; int front() return data[head]; int back() return data[tail--]; STL queue #include 2023. 6. 20.
[0x05] ์Šคํƒ ์ •์˜์™€ ์„ฑ์งˆ ์ •์˜ ํ•œ์ชฝ ๋์—์„œ๋งŒ ์›์†Œ๋ฅผ ๋„ฃ๊ฑฐ๋‚˜ ๋บผ ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ (restricted structure) ์„ฑ์งˆ ์›์†Œ์˜ ์ถ”๊ฐ€์™€ ์ œ๊ฑฐ : O(1) ์ œ์ผ ์ƒ๋‹จ์˜ ์›์†Œ ํ™•์ธ : O(1) ์ œ์ผ ์ƒ๋‹จ์ด ์•„๋‹Œ ๋‚˜๋จธ์ง€ ์›์†Œ๋“ค์˜ ํ™•์ธ/๋ณ€๊ฒฝ์ด ์›์น™์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅ ๊ธฐ๋Šฅ๊ณผ ๊ตฌํ˜„ ๊ตฌํ˜„ const int MAX = 1000005; int data[MAX]; int pos = 0; // ๋‹ค์Œ์— ์›์†Œ๊ฐ€ ์ถ”๊ฐ€๋  ๋•Œ ์‚ฝ์ž…ํ•ด์•ผ ํ•˜๋Š” ๊ณณ (์Šคํƒ ๋‚ด ์›์†Œ์˜ ์ˆ˜) void push(int x) data[pos++] = x; void pop() pos--; int top() return data[pos-1]; STL stack #include 2023. 6. 20.