๐ 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. ์ด์ 1 2 3 4 ๋ค์