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

์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฌธ์ œ26

[์ž๋ฐ”] ๋ฐฑ์ค€ 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.
[์ž๋ฐ”] ๋ฐฑ์ค€ 11404 - ํ”Œ๋กœ์ด๋“œ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ๋ฌธ์ œ. ๋ชจ๋“  ์ •์ ์—์„œ ๋ชจ๋“  ์ •์ ์— ๋Œ€ํ•œ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, ์ผ์ข…์˜ DP๋ผ๊ณ  ํ•œ๋‹ค. 3์ค‘ for๋ฌธ์œผ๋กœ ํ•ด๊ฒฐ์„ ํ•˜๋Š”๋ฐ 1๋ฒˆ์งธ for๋ฌธ : ๊ฒฝ์œ ์ง€ k 2๋ฒˆ์งธ for๋ฌธ : ์‹œ์ž‘์  i 3๋ฒˆ์งธ for๋ฌธ : ์ข…๋ฃŒ์  j ์ด๋ ‡๊ฒŒ ๋ชจ๋“  N์— ๋Œ€ํ•ด 3์ค‘ for๋ฌธ์„ ๋Œ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ •์ ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ ์€ ๋ฌธ์ œ์—์„œ๋งŒ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ธฐ๋ณธ์ ์ธ ์•„์ด๋””์–ด๋Š” ๊ฒฝ์œ ์ง€์˜ ์ž…์žฅ์—์„œ ์ƒ๊ฐ์„ ํ•˜๋Š” ๊ฑฐ๋‹ค. ์‹œ์ž‘์  i๊ฐ€ ๋‚˜ํ•œํ…Œ ์˜ค๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ + ๋‚ด๊ฐ€ ์ข…๋ฃŒ์  j๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ๊ฐ€ ์‹œ์ž‘์  i์—์„œ ์ข…๋ฃŒ์  j๋กœ ๋ฐ”๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๋ณด๋‹ค ์ž‘์œผ๋ฉด ๊ฐ’์„ ๊ฐฑ์‹ ํ•ด์ค€๋‹ค. ์ฒ˜์Œ ์กฐ๊ธˆ ์˜์‹ฌ์ด ๋“ค์—ˆ๋˜ ๋ถ€๋ถ„์€ ์ •๋ง ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋กœ ๊ฐฑ์‹ ์ด ๊ฐ€๋Šฅํ•œ์ง€ ์˜€๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 2 →4(๊ฒฝ์œ )→1(๊ฒฝ์œ ) →5 ๋กœ ๊ฐ€๋Š”.. 2020. 12. 19.
[์ž๋ฐ”] ๋ฐฑ์ค€ 2206 - ๋ฒฝ ๋ถ€์ˆ˜๊ณ  ์ด๋™ํ•˜๊ธฐ ใ…Žใ…Žใ…Žใ…Ž๋ฉ”๋ชจ๋ฆฌ๋„ ๋„ˆ๋ฌด ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์†๋„๋„ ๋Š๋ ค์„œ ์ด๋ ‡๊ฒŒ ์ €๋ ‡๊ฒŒ ๋‚˜๋ฆ„ ๋ฐ”๊ฟ”๋ดค์ง€๋งŒ ๋ณ€ํ•˜์ง€๋ฅผ ์•Š์•˜๋‹ค. ์†๋„๋Š” ๊ทธ๋ ‡๋‹ค ์ณ๋„ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋„ˆ๋ฌด ์˜์•„ํ–ˆ๋‹ค. classํ•˜๋‚˜ ์ƒ์„ฑํ•ด์„œ ํ์— ์ง‘์–ด๋„ฃ์–ด์ค˜์•ผ ํ•˜๋‚˜..?๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์ง€๋งŒ, ์˜ˆ์ „์— ํ’€์—ˆ๋˜ ์†Œ์Šค๋„ int๋ฐฐ์—ด๋กœ ํ’€์—ˆ๋Š”๋ฐ ๋ญ๊ฐ€ ๋ฌธ์ œ์ง€ ๊ณ ๋ฏผํ–ˆ๋‹ค. ๊ทผ๋ฐ ๋ฐฉ๊ธˆ ์ด์œ ๋ฅผ ํ•˜๋‚˜ ์ฐพ์•„๋ƒˆ๋Š”๋ฐ ๋„ˆ๋ฌด ์–ด์ด๊ฐ€ ์—†๋‹ค. BFSํ•  ๋•Œ ๊ผญ ๋“ค์–ด๊ฐ€๋Š” dir[] ๋ฐฐ์—ด์„ que์•ˆ์—์„œ ๋งค๋ฒˆ ์„ ์–ธ/์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  que๋งŒ ๋ฐ–์—๋‹ค๊ฐ€ ์„ ์–ธํ•ด์„œ ์ผ๋”๋‹ˆ 1/3์ด ์ค„์—ˆ๋‹ค ใ…Žใ…Ž,,์–ด์ด์—†๋„ค ์ฝ”๋“œ๋Š” ๊ทธ๋ƒฅ ๋งจ ์ฒ˜์Œ ์‹œ๋„ํ•ด์„œ ์„ฑ๊ณตํ•œ ์ฝ”๋“œ๋ผ ์ตœ์ ํ™” ์ „ํ˜€ ์•ˆ ๋˜์–ด ์žˆ๋‹ค. ์ฒ˜์Œ ์‹œ๋„ํ•  ๋•Œ์—๋Š” ํ‹€๋ ธ์—ˆ๋Š”๋ฐ, ๋ฐฉ๋ฌธ ์—ฌ๋ถ€๋ฅผ ๋ถ€์ˆ˜๊ณ  ๋“ค์–ด์™”์„ ๋•Œ, ๋ถ€์ˆ˜์ง€ ์•Š๊ณ  ๋“ค์–ด์™”์„ ๋•Œ ๋‚˜๋ˆ ์„œ ์ƒ๊ฐํ•˜์ง€ ์•Š์•„์„œ ํ‹€๋ ธ๋‹ค. ์–ด์ฐจํ”ผ ๊ทธ ์ง€์ ์— ๋„์ฐฉํ•œ ๊ฑฐ๋ฉด ์ƒ๊ด€.. 2020. 12. 12.