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

๐Ÿ”Ž Algorithm21

[๋ฐฑ์ค€] 1520. ๋‚ด๋ฆฌ๋ง‰๊ธธ ๋ฌธ์ œ ํ’€์ด ๋จผ์ € ๋ชจ๋“  ๊ฒฝ๋กœ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— DFS๋ฅผ ์‚ฌ์šฉํ•ด ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค. ์ƒ๊ฐํ•œ ์•„์ด๋””์–ด๋Š” ํ•œ ๋ฒˆ ๋ฐฉ๋ฌธํ–ˆ๋˜ ์ขŒํ‘œ๋ฅผ x,y๋ผ๊ณ  ํ–ˆ์„ ๋•Œ, (x,y) ์—์„œ (N-1, N-1)๊นŒ์ง€์˜ ๊ฒฝ๋กœ๋Š” ์ด๋ฏธ ๊ตฌํ•ด์ ธ์žˆ๊ณ  ๋ณ€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์‹œ ํƒ์ƒ‰ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์ ์ด๋‹ค. ๋”ฐ๋ผ์„œ dfs๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ฐฉ๋ฌธ์ฒดํฌ๋ฅผ ํ•˜๊ณ , ๋ฐฉ๋ฌธ์ฒดํฌ๊ฐ€ ๋œ ๊ณณ์ธ ๊ฒฝ์šฐ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฃผ์˜ํ•  ์ ์ด ์žˆ๋‹ค. ์ดˆ๊ธฐ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. import java.io.BufferedReader; import java.io.IOException; import java.io.Inpu.. 2021. 4. 1.
[๋ฐฑ์ค€] 2629. ์–‘ํŒ” ์ €์šธ ๋ฌธ์ œ ํ’€์ด ์˜ค๋žœ๋งŒ์— ํ‘ธ๋Š” DP๋ฌธ์ œ์˜€๋‹ค. ๋จผ์ € ์ถ”๋ฅผ ๋„ฃ์—ˆ์„ ๋•Œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ถ”์˜ ๋ฌด๊ฒŒ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ Cache๋ฐฐ์—ด์„ ์œ ์ง€ํ–ˆ๋‹ค. ์ด ๋•Œ ํ•ด๋‹น ์ถ”์— ๋Œ€ํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ํ˜„์žฌ ์ถ”๋งŒ ๋„ฃ์€ ๊ฒฝ์šฐ ์ด์ „ ๋‹จ๊ณ„์—์„œ ๋งŒ๋“ค์—ˆ๋˜ ๋ฌด๊ฒŒ๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด์ „ ๋‹จ๊ณ„์—์„œ ๋งŒ๋“ค์—ˆ๋˜ ๋ฌด๊ฒŒ์— ํ˜„์žฌ ์ถ”๋ฅผ ๋”ํ•˜๋Š” ๊ฒฝ์šฐ ์ด์ „ ๋‹จ๊ณ„์—์„œ ๋งŒ๋“ค์—ˆ๋˜ ๋ฌด๊ฒŒ์— ํ˜„์žฌ ์ถ”๋ฅผ ๋นผ๋Š” ๊ฒฝ์šฐ (๋ฌผ์ฒด์ชฝ์— ์ถ”๋ฅผ ๋†“๋Š” ๊ฒฝ์šฐ) ์ตœ์ข…์ ์œผ๋กœ ๋งˆ์ง€๋ง‰ ์ถ”๋ฅผ ๋„ฃ์—ˆ์„ ๋•Œ ๊ฐ€๋Šฅํ•œ ๋ฌด๊ฒŒ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { // Input ๋ฐ›๊ธฐ ์œ„ํ•œ Buffered Re.. 2021. 4. 1.
[๊ฐœ๋… ์ •๋ฆฌ] ํˆฌ ํฌ์ธํ„ฐ ์ตœ๊ทผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€๋ฉด์„œ ์‹œ๊ฐ„ ์ดˆ๊ณผ์™€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋กœ ์ธํ•ด ์ƒ๋‹นํžˆ ์• ๋ฅผ ๋จน์—ˆ๋˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ์˜ ๋‹ค๋ฅธ ํ’€์ด๋ฅผ ์ฐพ์•„๋ณด๋‹ˆ ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์•Œ์•˜๊ณ  ์ด์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด์—์„œ ๋‘ ๊ฐœ์˜ ์ธ๋ฑ์Šค ํฌ์ธํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฌธ์ œ๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค์–ด์„œ ์„ค๋ช…ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋ฐฑ์ค€ - 2467. ์šฉ์•ก ์ด ๋ฌธ์ œ์—์„œ 0๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฑฐ๋ฆฌ์˜ ํ•ฉ์„ ๊ฐ€์ง€๋Š” ๋‘ ์›์†Œ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋จผ์ € O(N^2)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋Š” ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ œ์ฒ˜๋Ÿผ N์˜ ํฌ๊ธฐ๊ฐ€ O(N^2)์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์— ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด O(N)์— ํ•ด๋‹น ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. (์ด ๋ฌธ์ œ๋Š” ์ •๋ ฌ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ๋ฌธ์ œ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(.. 2021. 4. 1.
[๋ฐฑ์ค€] - 2206. ๋ฒฝ๋ถ€์ˆ˜๊ณ  ์ด๋™ํ•˜๊ธฐ ๋ฌธ์ œ ํ’€์ด ์ด ๋ฌธ์ œ๋Š” ์˜ˆ์ „์— BFS๋ฅผ ํ•œ์ฐฝ ํ’€์—ˆ์„ ๋•Œ์—๋Š” ๋ชป ํ’€์—ˆ๋˜ ๋ฌธ์ œ์˜€๋Š”๋ฐ ์ด์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ์ธ 1600. ๋ง์ด ๋˜๊ณ ํ”ˆ ์›์ˆญ์ด๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์˜๊ฐ์„ ์–ป์–ด์„œ ๋‹ค์‹œ ๋„์ „ํ–ˆ๋”๋‹ˆ ์‰ฝ๊ฒŒ ํ’€๋ ธ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ์ผ๋ฐ˜์ ์ธ BFS๋ณด๋‹ค ๊นŒ๋‹ค๋กœ์šด ์ด์œ ๋Š” ์–ด๋–ค ์ขŒํ‘œ์— ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ 2๊ฐ€์ง€(์ด์ „์— ๋ฒฝ์„ ๋ถ€์‹  ๊ฒฝ์šฐ, ์ด์ „์— ๋ฒฝ์„ ๋ถ€์ˆ˜์ง€ ์•Š์€ ๊ฒฝ์šฐ)๋ผ๋Š” ์ ์ด๋‹ค. ๋”ฐ๋ผ์„œ 2์ฐจ์› ๋ฐฉ๋ฌธ ๋ฐฐ์—ด๋กœ๋Š” ์ฒ˜๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  3์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. 3์ฐจ์› ๋ฐฐ์—ด์—์„œ 0๋ฒˆ์จฐ ์ธ๋ฑ์Šค๋Š” ๋ฒฝ์„ ์ด๋ฏธ ๋ถ€์ˆ˜๊ณ  ์˜จ ๊ฒฝ์šฐ, 1๋ฒˆ์งธ ์ธ๋ฑ์Šค๋Š” ๋ฒฝ์„ ์•„์ง ๋ถ€์ˆ˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์ด๋‹ค. bfs๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๋‹ค์Œ์˜ 3๊ฐ€์ง€ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ์—ˆ๋‹ค. ํ˜„์žฌ ๋ฒฝ์„ ๋ถ€์ˆ  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ๋‚จ์•„์žˆ๊ณ  ๋‹ค์Œ ๋ฐฉ๋ฌธํ•  ์ขŒํ‘œ๊ฐ€ ๋ฒฝ์ธ ๊ฒฝ์šฐ, ๊ธฐํšŒ๋ฅผ ์†Œ์ง„ํ•˜๊ณ  ๋ฒฝ์„ ๋ฐฉ๋ฌธ ๊ธฐํšŒ๊ฐ€.. 2021. 3. 24.
[๋ฐฑ์ค€] - 1277. ๋ฐœ์ „์†Œ ์„ค์น˜ ๋ฌธ์ œ ํ’€์ด 1๋ฒˆ ๋ฐœ์ „์†Œ๋ถ€ํ„ฐ N๋ฒˆ์งธ ๋ฐœ์ „์†Œ๊นŒ์ง€์˜ ์ตœ์†Œ ๋น„์šฉ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. ๋จผ์ € ๊ฐ ๋ฐœ์ „์†Œ์˜ ์ขŒํ‘œ๋ฅผ ์ €์žฅ(plant)ํ•˜๊ณ , ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ €์žฅ(connected)ํ•˜์˜€๋‹ค. ๋‹ค์Œ์œผ๋กœ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „, 1๋ฒˆ๋ถ€ํ„ฐ ๊ฐ ์ •์ ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” distance ๋ฐฐ์—ด์„ ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ์—๋Š” 0, ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” INF๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ฃผ์—ˆ๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ๊ฐ€์ค‘์น˜๋ฅผ ๋”ํ•ด์ฃผ๋Š” ๋ถ€๋ถ„์€ ๊ฐ ์ขŒํ‘œ๊ฐ„์˜ ๊ฑฐ๋ฆฌ์ด๊ธฐ ๋–„๋ฌธ์— ๋‘ ์  ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๊ณต์‹์„ ํ†ตํ•ด ๊ตฌํ–ˆ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ ์ธ์ ‘ํ•œ ํ–‰๋ ฌ์—์„œ ์ฐพ๋Š” ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ์™€ ๋‹ฌ๋ฆฌ ๋ชจ๋“  ๋ฐœ์ „์†Œ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์†ํ•ด์„œ ๊ฐฑ์‹ ํ•ด ์ค„ ํ•„์š”๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 1~N๊นŒ์ง€ ์ž๊ธฐ ์ž์‹ ์„ ์ œ์™ธํ•˜๊ณ  ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐฑ์‹ ํ•ด์ฃผ์—ˆ๋‹ค. ํ’€.. 2021. 3. 24.
[๊ฐœ๋… ์ •๋ฆฌ] ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ๋‹ค์ต์ŠคํŠธ๋ผ ๊ฐ€์ค‘์น˜๊ฐ€ ์—†๋Š” ๊ทธ๋ž˜ํ”„์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๋ฌธ์ œ๋Š” ๋Œ€๋ถ€๋ถ„ BFS๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๊ฐ„์„ ์— ๊ฐ€์ค‘์น˜๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด BFS๊ฐ€ ์•„๋‹Œ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์ ‘๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์œ ํ˜•์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋‘ ์ •์  ๊ฐ„์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ ํ•˜๋‚˜์˜ ์ •์ ์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ์ •์ ๊ณผ์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ ํ•˜๋‚˜์˜ ์ •์ ์œผ๋กœ ๊ฐ€๋Š” ๋ชจ๋“  ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ ์ •์  ๊ฐ„์˜ ๋ชจ๋“  ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ - ํ”Œ๋กœ์ด๋“œ-์™€์ƒฌ ์ €๋ฒˆ ๊ธ€์—์„œ๋Š” 4๋ฒˆ ์œ ํ˜•์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํ”Œ๋กœ์ด๋“œ-์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” 2๋ฒˆ ์œ ํ˜•์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด ์‹œ์ž‘ ์ •์ ์—์„œ ๊ฑฐ๋ฆฌ๊ฐ€ ์ตœ์†Œ์ธ ์ •์ ์„ ์„ ํƒํ•ด .. 2021. 3. 22.