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

๐Ÿ“š ์ „๊ณต ๊ณต๋ถ€/๋ฌธ์ œํ•ด๊ฒฐ๊ธฐ๋ฒ•

(11)
[๋ฌธ์ œํ•ด๊ฒฐ๊ธฐ๋ฒ•] 3. ์ž๋ฃŒ๊ตฌ์กฐ1 1. RMQ : Range Minimum Query (๋ฒ”์œ„ ์ตœ์†Œ ์ฟผ๋ฆฌ) ๋ฐฐ์—ด์˜ ๋ถ€๋ถ„๋ฐฐ์—ด์—์„œ ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ๊ธฐ (1) O(n^3) ์ „์ฒ˜๋ฆฌ, O(1) ์งˆ์˜ : brute force ๋ฐฉ์‹์œผ๋กœ ๊ฐ€๋Šฅํ•œ RMQ(a,b)์— ๋Œ€ํ•œ ๋‹ต์„ ๋ชจ๋‘ ์ €์žฅํ•ด๋†“๋Š”๋‹ค. n^2์นธ์„ ์ฑ„์›Œ์•ผํ•˜๊ณ , ํ•œ ์นธ์„ ์ฑ„์šธ ๋•Œ ์ตœ๋Œ€ O(n)์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค. (2) O(n^2) ์ „์ฒ˜๋ฆฌ, O(1) ์งˆ์˜ : ๊ฐ€๋Šฅํ•œ RMQ(a,b)์— ๋Œ€ํ•œ ๋‹ต์„ ๋ชจ๋‘ ์ €์žฅํ•˜๋Š”๋ฐ, RMQ(a,b+1) = min(RMQ(a,b) , A[b+1])์„ ์‚ฌ์šฉํ•˜์—ฌ n^2์นธ์„ ๊ฐ๊ฐ O(1)์˜ ์‹œ๊ฐ„์œผ๋กœ ์ฑ„์šธ ์ˆ˜ ์žˆ๋‹ค. (3) O(n) ์ „์ฒ˜๋ฆฌ, O(sqrt(n)) ์งˆ์˜ : ๋ฐฐ์—ด์„ sqrt(n) ๋ฌถ์Œ์œผ๋กœ ๋‚˜๋ˆˆ ํ›„ ๊ฐ ๋ฌถ์Œ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๋Š”๋ฐ์— O(n)์ด ๊ฑธ๋ฆฌ๋ฉฐ, RMQ(a,b)๋ฅผ ๊ตฌํ•˜..
[๋ฌธ์ œํ•ด๊ฒฐ๊ธฐ๋ฒ•] 2. ๊ธฐ์ดˆ์ˆ˜ํ•™ 1. ๋ฒกํ„ฐ์˜ ์™ธ์  : cross product 2. ์™ธ์ ์˜ ์‘์šฉ : ๋ถ€ํ˜ธ ์ ๊ฒ€ 3. CCW ์•Œ๊ณ ๋ฆฌ์ฆ˜ : Counter-Clock Wise ์„ธ ์ ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ A->B์™€ A->C ๋‘ ๋ฒกํ„ฐ์˜ ์™ธ์ ์˜ ๋ถ€ํ˜ธ๊ฐ€ ๋ฐฉํ–ฅ์„ ๊ฒฐ์ •ํ•จ. int ccw(int x1, int y1, int x2, int y2, int x3, int y3){ int tmp = x1*y2 + x2*y3 + x3*y1; tmp -= (y1*x2 + y2*x3 + y3*x1); if(tmp > 0) return 1; // a์— ๋Œ€ํ•ด b๊ฐ€ ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ(์™ผ์ชฝ)์— ์žˆ์Œ else if(tmp < 0) return -1; // a์— ๋Œ€ํ•ด b๊ฐ€ ์‹œ๊ณ„ ๋ฐฉํ–ฅ(์˜ค๋ฅธ์ชฝ)์— ์žˆ์Œ else return 0; } 4. ์‘์šฉ : ์„ ๋ถ„์˜ ๊ต์ฐจ ์—ฌ๋ถ€ a-b๋ฅผ ์ด์€ ๋ฒกํ„ฐ A์— ..
[๋ฌธ์ œํ•ด๊ฒฐ๊ธฐ๋ฒ•] 1. C++ 1. ์‚ฌ์šฉ ์–ธ์–ด C : ๊ฐ€์žฅ ์ต์ˆ™ํ•˜์ง€๋งŒ ์ง€์› ๊ธฐ๋Šฅ์ด ์ ์Œ C++ : STL์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์šฉ Java : java.util์— ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ด ๋งŽ๋‹ค. ์‹คํ–‰์‹œ๊ฐ„์ด ๋Š๋ ค์„œ ์†๋„์—์„œ ์ œํ•œ์„ ๋ฐ›์Œ Python : ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์‰ฝ์ง€๋งŒ, ์‹คํ–‰์‹œ๊ฐ„์ด ๊ฐ€์žฅ ๋Š๋ฆฌ๋‹ค. 2. ๋ฌธ์ œ ํ•ด๊ฒฐ -> ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Šฅ๋ ฅ์„ ๋ฌป๋Š” ๋ฌธ์ œ 3. auto for(auto a : A){ ~ } 4. for : ๋ฐ˜๋ณต๋ฌธ 5. pair 6. STL : standard template library made by HP in 1994 ์ฝ”๋“œ๋ฅผ ์งง๊ณ  ๋น ๋ฅด๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์คŒ. 7. template template const T& my_max(const T&x, const T&y){ return (y { 1, 3 } ..

728x90