BFS
[PGM_1844] ๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ (java)
๋ฌธ์ ๋งํฌ https://programmers.co.kr/learn/courses/30/lessons/1844 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr ๋ฌธ์ ํ์ด ๐จ๐ป๐ป ํต์ฌ ์คํฌ ๐จ๐ป๐ป BFS 1. ๋ฌธ์ ์ดํด (0,0)์ ์์์ ์ผ๋ก ํ์ฌ ์ ๋ฐ๋ํธ์ ์์นํ (n,m)์ผ๋ก ์ด๋ํ๋ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ์ ๋ ฅ์ผ๋ก ์ด๋ํ ์ ์๋์ง ์๋์ง์ ์ฌ๋ถ์ map์ด ์ฃผ์ด์ง๋ค. ๋ง์ฝ (n,m)์ผ๋ก ์ด๋ํ ์ ์๋ ๊ฒฝ์ฐ์๋ -1์ returnํ์ฌ์ฃผ๋ฉด ๋๋ค...
[BOJ_1261] ์๊ณ ์คํ (java)
๋ฌธ์ ๋งํฌ https://www.acmicpc.net/problem/1261 1261๋ฒ: ์๊ณ ์คํ ์ฒซ์งธ ์ค์ ๋ฏธ๋ก์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ๊ฐ๋ก ํฌ๊ธฐ M, ์ธ๋ก ํฌ๊ธฐ N (1 ≤ N, M ≤ 100)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์๋ ๋ฏธ๋ก์ ์ํ๋ฅผ ๋ํ๋ด๋ ์ซ์ 0๊ณผ 1์ด ์ฃผ์ด์ง๋ค. 0์ ๋น ๋ฐฉ์ ์๋ฏธํ๊ณ , 1์ ๋ฒฝ์ ์๋ฏธ www.acmicpc.net ๋ฌธ์ ์ค๋ช ๋๋ณด๊ธฐ ๋ฌธ์ ์๊ณ ์คํ ์ด์์ง์ด ๋ชจ๋ ๋ฏธ๋ก์ ๊ฐํ๋ค. ๋ฏธ๋ก๋ N*M ํฌ๊ธฐ์ด๋ฉฐ, ์ด 1*1ํฌ๊ธฐ์ ๋ฐฉ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๋ฏธ๋ก๋ ๋น ๋ฐฉ ๋๋ ๋ฒฝ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๋น ๋ฐฉ์ ์์ ๋กญ๊ฒ ๋ค๋ ์ ์์ง๋ง, ๋ฒฝ์ ๋ถ์์ง ์์ผ๋ฉด ์ด๋ํ ์ ์๋ค. ์๊ณ ์คํ ์ด์์ง์ ์ฌ๋ฌ๋ช ์ด์ง๋ง, ํญ์ ๋ชจ๋ ๊ฐ์ ๋ฐฉ์ ์์ด์ผ ํ๋ค. ์ฆ, ์ฌ๋ฌ ๋ช ์ด ๋ค๋ฅธ ๋ฐฉ์ ์์ ์๋ ์๋ค. ์ด๋ค ๋ฐฉ์์ ์ด..
[BOJ_14226] ์ด๋ชจํฐ์ฝ (java)
๋ฌธ์ ๋งํฌ https://www.acmicpc.net/problem/14226 14226๋ฒ: ์ด๋ชจํฐ์ฝ ์์ ์ด๋ ๋งค์ฐ ๊ธฐ์๊ธฐ ๋๋ฌธ์, ํจ๋น์ด์๊ฒ ์ค๋ง์ผ ์ด๋ชจํฐ์ฝ์ S๊ฐ ๋ณด๋ด๋ ค๊ณ ํ๋ค. ์์ ์ด๋ ์ด๋ฏธ ํ๋ฉด์ ์ด๋ชจํฐ์ฝ 1๊ฐ๋ฅผ ์ ๋ ฅํ๋ค. ์ด์ , ๋ค์๊ณผ ๊ฐ์ 3๊ฐ์ง ์ฐ์ฐ๋ง ์ฌ์ฉํด์ ์ด๋ชจํฐ์ฝ์ S๊ฐ ๋ง www.acmicpc.net ๋ฌธ์ ์ค๋ช ๋๋ณด๊ธฐ ๋๋ณด๊ธฐ ๋ฌธ์ ์์ ์ด๋ ๋งค์ฐ ๊ธฐ์๊ธฐ ๋๋ฌธ์, ํจ๋น์ด์๊ฒ ์ค๋ง์ผ ์ด๋ชจํฐ์ฝ์ S๊ฐ ๋ณด๋ด๋ ค๊ณ ํ๋ค. ์์ ์ด๋ ์ด๋ฏธ ํ๋ฉด์ ์ด๋ชจํฐ์ฝ 1๊ฐ๋ฅผ ์ ๋ ฅํ๋ค. ์ด์ , ๋ค์๊ณผ ๊ฐ์ 3๊ฐ์ง ์ฐ์ฐ๋ง ์ฌ์ฉํด์ ์ด๋ชจํฐ์ฝ์ S๊ฐ ๋ง๋ค์ด ๋ณด๋ ค๊ณ ํ๋ค. ํ๋ฉด์ ์๋ ์ด๋ชจํฐ์ฝ์ ๋ชจ๋ ๋ณต์ฌํด์ ํด๋ฆฝ๋ณด๋์ ์ ์ฅํ๋ค. ํด๋ฆฝ๋ณด๋์ ์๋ ๋ชจ๋ ์ด๋ชจํฐ์ฝ์ ํ๋ฉด์ ๋ถ์ฌ๋ฃ๊ธฐ ํ๋ค. ํ๋ฉด์ ์๋ ์ด๋ชจํฐ์ฝ ์ค ํ๋๋ฅผ ์ญ์ ํ๋ค..
[BOJ_14226] ์ด๋ชจํฐ์ฝ (java)
๋ฌธ์ ๋งํฌ https://www.acmicpc.net/problem/14226 14226๋ฒ: ์ด๋ชจํฐ์ฝ ์์ ์ด๋ ๋งค์ฐ ๊ธฐ์๊ธฐ ๋๋ฌธ์, ํจ๋น์ด์๊ฒ ์ค๋ง์ผ ์ด๋ชจํฐ์ฝ์ S๊ฐ ๋ณด๋ด๋ ค๊ณ ํ๋ค. ์์ ์ด๋ ์ด๋ฏธ ํ๋ฉด์ ์ด๋ชจํฐ์ฝ 1๊ฐ๋ฅผ ์ ๋ ฅํ๋ค. ์ด์ , ๋ค์๊ณผ ๊ฐ์ 3๊ฐ์ง ์ฐ์ฐ๋ง ์ฌ์ฉํด์ ์ด๋ชจํฐ์ฝ์ S๊ฐ ๋ง www.acmicpc.net ๋ฌธ์ ์ค๋ช ๋๋ณด๊ธฐ ๋๋ณด๊ธฐ ๋ฌธ์ ์์ ์ด๋ ๋งค์ฐ ๊ธฐ์๊ธฐ ๋๋ฌธ์, ํจ๋น์ด์๊ฒ ์ค๋ง์ผ ์ด๋ชจํฐ์ฝ์ S๊ฐ ๋ณด๋ด๋ ค๊ณ ํ๋ค. ์์ ์ด๋ ์ด๋ฏธ ํ๋ฉด์ ์ด๋ชจํฐ์ฝ 1๊ฐ๋ฅผ ์ ๋ ฅํ๋ค. ์ด์ , ๋ค์๊ณผ ๊ฐ์ 3๊ฐ์ง ์ฐ์ฐ๋ง ์ฌ์ฉํด์ ์ด๋ชจํฐ์ฝ์ S๊ฐ ๋ง๋ค์ด ๋ณด๋ ค๊ณ ํ๋ค. ํ๋ฉด์ ์๋ ์ด๋ชจํฐ์ฝ์ ๋ชจ๋ ๋ณต์ฌํด์ ํด๋ฆฝ๋ณด๋์ ์ ์ฅํ๋ค. ํด๋ฆฝ๋ณด๋์ ์๋ ๋ชจ๋ ์ด๋ชจํฐ์ฝ์ ํ๋ฉด์ ๋ถ์ฌ๋ฃ๊ธฐ ํ๋ค. ํ๋ฉด์ ์๋ ์ด๋ชจํฐ์ฝ ์ค ํ๋๋ฅผ ์ญ์ ํ๋ค..
BFS๋ก ์ต์๋น์ฉ ๋ฌธ์ ํด๊ฒฐํ๊ธฐ
๋์ BFS ์๊ณ ๋ฆฌ์ฆ์ ๋ชฉ์ ์ ๊ทธ๋ํ์์ ๋ชจ๋ ์ ์ ์ ํ๋ฒ์ฉ๋ง ํ์ธํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. BFS๊ฐ ๋๋น์ฐ์ ํ์์กฐ๊ฑด์ด๋ผ๋ ์ฑ์ง ๋๋ฌธ์ ๋ช๊ฐ์ง ์กฐ๊ฑด๋ง ์ฑ๋ฆฝํ๋ฉด ์ต์๋น์ฉ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. BFS๋? BFS ๊ทธ๋ํ ์ค๋ช ์ฐธ๊ณ ํ๊ธฐ [Algorithm] ๊ทธ๋ํ๋? ๊ทธ๋ํ ํ์์๊ณ ๋ฆฌ์ฆ(DFS,BFS) ๋์ ๊ทธ๋ํ๋ ์ ์ ๊ณผ ๊ฐ์ ์ผ๋ก ๊ตฌ์ฑ๋๋ ์ค์ํ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ์ด๋ฒ ์๊ฐ์๋ ๊ทธ๋ํ์ ๋ํ ์ฉ์ด์ ๊ทธ๋ํ๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ํ๋ฅผ ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์์๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ํ cnu-jinseop.tistory.com BFS๋ ๊ทธ๋ํ์ ํ์์์ ์ฌ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. DFS์ ๋์ผํ๊ฒ ๋ชจ๋ ์ ์ ์ ํ๋ฒ์ฉ๋ง ํ์ธํ ๋ ์ฌ์ฉํฉ๋๋ค. BFS๋ ๋๋น๋ฅผ ์ฐ์ ์ผ๋ก ํ์ํ๋ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ๋๋ฌธ์ ์ต์๋น์ฉ ๋ฌธ์ ๋ฅผ ํด..
[BOJ_7576] ํ ๋งํ (java)
๋ฌธ์ ๋งํฌ https://www.acmicpc.net/problem/7576 7576๋ฒ: ํ ๋งํ ์ฒซ ์ค์๋ ์์์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ๋ ์ ์ M,N์ด ์ฃผ์ด์ง๋ค. M์ ์์์ ๊ฐ๋ก ์นธ์ ์, N์ ์์์ ์ธ๋ก ์นธ์ ์๋ฅผ ๋ํ๋ธ๋ค. ๋จ, 2 ≤ M,N ≤ 1,000 ์ด๋ค. ๋์งธ ์ค๋ถํฐ๋ ํ๋์ ์์์ ์ ์ฅ๋ ํ ๋งํ www.acmicpc.net ๋ฌธ์ ์ค๋ช ๋๋ณด๊ธฐ ๋๋ณด๊ธฐ ๋๋ณด๊ธฐ ๋ฌธ์ ์ฒ ์์ ํ ๋งํ ๋์ฅ์์๋ ํ ๋งํ ๋ฅผ ๋ณด๊ดํ๋ ํฐ ์ฐฝ๊ณ ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ํ ๋งํ ๋ ์๋์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๊ฒฉ์ ๋ชจ์ ์์์ ์นธ์ ํ๋์ฉ ๋ฃ์ด์ ์ฐฝ๊ณ ์ ๋ณด๊ดํ๋ค. ์ฐฝ๊ณ ์ ๋ณด๊ด๋๋ ํ ๋งํ ๋ค ์ค์๋ ์ ์ต์ ๊ฒ๋ ์์ง๋ง, ์์ง ์ต์ง ์์ ํ ๋งํ ๋ค๋ ์์ ์ ์๋ค. ๋ณด๊ด ํ ํ๋ฃจ๊ฐ ์ง๋๋ฉด, ์ต์ ํ ๋งํ ๋ค์ ์ธ์ ํ ๊ณณ์ ์๋ ์ต์ง ์์ ํ ๋งํ ๋ค์ ์ต์ ํ ..
[BOJ_11724] ์ฐ๊ฒฐ์์ (java)
๋ฌธ์ ๋งํฌ https://www.acmicpc.net/problem/11724 11724๋ฒ: ์ฐ๊ฒฐ ์์์ ๊ฐ์ ์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ N๊ณผ ๊ฐ์ ์ ๊ฐ์ M์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) ๋์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์ ๊ฐ์ ์ ์ ๋์ u์ v๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ u, v ≤ N, u ≠ v) ๊ฐ์ ๊ฐ์ ์ ํ ๋ฒ๋ง ์ฃผ www.acmicpc.net ๋ฌธ์ ์ค๋ช ๋๋ณด๊ธฐ ๋๋ณด๊ธฐ ๋ฌธ์ ๋ฐฉํฅ ์๋ ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก์ ๋, ์ฐ๊ฒฐ ์์ (Connected Component)์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ N๊ณผ ๊ฐ์ ์ ๊ฐ์ M์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) ๋์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์ ๊ฐ์ ์ ์ ๋์ u์ v๊ฐ..