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

๋ฐฑ์ค€9

[์ž๋ฐ”] ๋ฐฑ์ค€ 2042 - ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ ๋ฌธ์ œ๋‹ค. ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ๋Š” ํ•œ ๋ฒˆ๋„ ๊ทธ ์–ด๋””์—์„œ๋„ ๋“ค์–ด๋ณธ ์ ๋„ ์—†์—ˆ๋Š”๋ฐ, ์•„๋ž˜ ๊ธ€ ์ฝ์œผ๋‹ˆ๊นŒ ์–ด๋Š ์ •๋„ ์ดํ•ด๊ฐ€ ๋๋‹ค. www.crocus.co.kr/648 ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ(Segment Tree) ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ(Segment Tree)๋Š” ์š”์ฒญํ•˜๋Š” ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์œผ๋‚˜, ๋ชจ๋“  ์ฟผ๋ฆฌ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์—†๊ธฐ์— ๊ตฌ๊ฐ„ ํ•ฉ์— ๋Œ€ํ•œ ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ๋ฅผ ์ •๋ฆฌํ•ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด์šฉ์ด ๊ธธ์ง€๋งŒ ๊ทธ๋งŒํผ ์ž์„ธํžˆ ์„ค www.crocus.co.kr # ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ - ์‹œ๊ฐ„ ๋ณต์žก๋„ : O(logN) - tree ๋ฐฐ์—ด๊ณผ array ๋ฐฐ์—ด์€ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋‹ค. array ๋ฐฐ์—ด์€ 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๊ฐ’์ด ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๋ฐฐ์—ด์ด๋ผ๋ฉด, tree ๋ฐฐ์—ด์€ ๊ตฌ๊ฐ„ํ•ฉ๋“ค์ด ๋“ค์–ด๊ฐ€์žˆ๋Š” ๋ฐฐ์—ด์ด๋‹ค. ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ ๋ฐฐ์—ด์— ๋Œ€์น˜์‹œํ‚จ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.. 2021. 1. 6.
[์ž๋ฐ”] ๋ฐฑ์ค€ 4386 - ๋ณ„์ž๋ฆฌ ๋งŒ๋“ค๊ธฐ ๊ฐ ๋ณ„(=๋…ธ๋“œ)์˜ ์œ„์น˜๋ฅผ ์ขŒํ‘œํ‰๋ฉด ์ƒ์— ์ฃผ๊ณ , ๋ณ„๋“ค ๊ฐ„ ๊ฑฐ๋ฆฌ๋Š” ์•Œ์•„์„œ ๊ณ„์‚ฐํ•œ ๋‹ค์Œ์—, ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ. n์ด ์ตœ๋Œ€ 100์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐ์—๋Š” 100x99์˜ ์—ฐ์‚ฐ์ด ํ•„์š”ํ•˜๋‹ˆ๊นŒ ํฐ ๋ฌธ์ œ๋Š” ์—†์„ ๊ฒƒ ๊ฐ™์€๋ฐ ์ข€ ๊ท€์ฐฎ๋„ค ใ…Žใ…Ž ๊ฒŒ๋‹ค๊ฐ€ ์‹ค์ˆ˜๊ฐ’์ด๋ผ ๋” ๊ท€์ฐฎ๋‹ค. 1. ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ ๊ฐ ๋ณ„๋“ค์˜ x,y ์ขŒํ‘œ ๋‹ด์•„๋‘๊ธฐ 2. ์ด์ค‘ for๋ฌธ ์ด์šฉํ•ด์„œ ๊ฐ ๋ณ„๋“ค๊ฐ„ ๊ฑฐ๋ฆฌ ๊ตฌํ•˜๊ณ  ๊ทธ ๊ฐ’๋“ค์€ PriorityQueue์— ๋‹ด์•„๋‘๊ธฐ 3. PriorityQueue๋ฅผ while๋ฌธ์œผ๋กœ ํƒ์ƒ‰ํ•ด์„œ ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ๊ฐ’ ๊ตฌํ•˜๊ธฐ DefimalFormat์ด๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์จ๋ดค๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ํ†ต๊ณผ์ž๋“ค ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ˆ๊นŒ PQ ์ด์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ArrayList๊ฐ€ ๋” ๋น ๋ฅธ๊ฐ€๋ณด๋‹ค. /* 2021.01.05(ํ™”) */ import java... 2021. 1. 5.
[์ž๋ฐ”] ๋ฐฑ์ค€ 1717 - ์ง‘ํ•ฉ์˜ ํ‘œํ˜„ ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ ๋ฌธ์ œ 1. ๋‚ด ๋ถ€๋ชจ๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ๋‹ด๋Š” ๋ฐฐ์—ด parent[i]์„ ์ผ๋‹จ ๋‚˜ ์ž์‹ ์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค. 2. ํŒŒ์ธ๋“œ - ๋‚ด ๋ถ€๋ชจ๊ฐ€ ์ •๋ง ์ตœ์ƒ์œ„ ๋ถ€๋ชจ์ธ์ง€ ๊ณ„์† ์ฐพ์•„ ๋‚˜๊ฐ€๋ฉด์„œ, ์ตœ์ƒ์œ„๊ฐ€ ์•„๋‹ ๋•Œ์—๋Š” ์ƒ์œ„์˜ ๋ถ€๋ชจ๋กœ ๊ฐ’์„ ๊ต์ฒดํ•œ๋‹ค. private static int find(int x) { if(parent[x]==x) return x; else return parent[x] = find(parent[x]); } 3. ์œ ๋‹ˆ์˜จ - ๋‘ ์ˆซ์ž์˜ ๋ถ€๋ชจ๋ฅผ ํ™•์ธํ•ด์„œ, ๋ถ€๋ชจ ๊ฐ’์ด ๋‹ค๋ฅด๋‹ค๋ฉด ๋ถ€๋ชจ ๊ฐ’์„ a๋‚˜ b์˜ ๋ถ€๋ชจ๊ฐ’์œผ๋กœ ๊ต์ฒดํ•ด์ค€๋‹ค. ์–ด๋–ค ๊ฐ’์˜ ๋ถ€๋ชจ๋ฅผ ๋„ฃ์„ ๊ฒƒ์ธ์ง€๋Š” ์ƒ๊ด€์—†๋‹ค. private static void union(int a, int b) { a = find(a); b = find(b); if(a!=b) { par.. 2020. 12. 29.
[์ž๋ฐ”] ๋ฐฑ์ค€ 1956 - ์šด๋™ ์‹œ์ž‘์ ๊ณผ ๋„์ฐฉ์ ์ด ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š๊ณ , ๊ฒฝ๋กœ์˜ ํ•ฉ์ด ๊ฐ€์žฅ ์ž‘์€ ์‚ฌ์ดํด์„ ์ฐพ์œผ๋ฉด ๋œ๋‹ค. ์‚ฌ์ดํด์„ ์–ด๋–ป๊ฒŒ ์ฐพ์•„๋‚ผ์ง€์— ๋Œ€ํ•ด ์–ด๋ ต๊ฒŒ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด์šฉํ•ด์„œ dist[1][1], dist[2][2], ..., dist[V][V]์˜ ๊ฐ’๋“ค์„ ํ™•์ธํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ๋„์‹œ์˜ ๊ฐœ์ˆ˜๋Š” ์ตœ๋Œ€ 400๊ฐœ์ด๊ณ , ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜๋„ ์ตœ๋Œ€ V(V-1)๋ผ๊ณ  ํ–ˆ์œผ๋‹ˆ ์ตœ๋Œ€ 16๋งŒ๊ฐœ๋กœ ๋ณด๋ฉด ๋œ๋‹ค. ์ตœ๋Œ€๊ฐ’๋“ค์„ ๊ธฐ์ค€์œผ๋กœ ์ƒ๊ฐํ–ˆ์„ ๋•Œ, ๊ฐ„์„ ์€ 16๋งŒ๋ฒˆ์„ ์ฝ์œผ๋ฉด ๋˜๊ณ , ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ 400 x 400 x 400์ด๋‹ˆ๊นŒ 6์ฒœ 4๋ฐฑ๋งŒ ์ •๋„์˜ ์—ฐ์‚ฐ๋งŒ ํ•„์š”ํ•˜๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค๋Š” ๊ฑธ ์•Œ๊ณ  ๋‚˜๋ฉด ์—„์ฒญ ์‰ฌ์šด๋ฐ, ๊ทธ๊ฑธ ์•Œ์•„์ฑŒ ์งฌ์ด ๋ถ€์กฑํ•˜๋‹ค /* 2020.12.24(๋ชฉ) */ import java.io.Buffe.. 2020. 12. 24.