BFS
-
[BaekJoon] 1697๋ฒ : ์จ๋ฐ๊ผญ์งSW Test/BaekJoon 2021. 4. 23. 01:52
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ํ์ด BFS๋ฅผ ํ์ฉํ๋ ๋ฌธ์ ์ธ๋ฐ 2์ฐจ์์ด ์๋ 1์ฐจ์์ผ๋ก ์์ฑํ๋ฉด ๋ฉ๋๋ค. #include #include using namespace std; int arr[100005]; int main(){ int n,k; cin>>n>>k; queue q; arr[n] = 1; q.push(n); while(!q.empty()){ int cur = q.front(); if(cur == k) break; q.pop(); if(cur>0 && arr[cur-1] == 0){ q.push(cur-1); arr[cur-1] = arr[cur]+1; } if(cur
-
[BaekJoon] 4179๋ฒ : ๋ถ!SW Test/BaekJoon 2021. 4. 23. 01:43
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด BFS ํ์ฉํ๋ ๋ฌธ์ ๋ก ๋ถ์ ์์์ ์์ BFS๋ฅผ ๋๋ฆฐ ํ ์งํ์ด๋ฅผ BFS๋ฅผ ์งํํ์ฌ ๋ถ์ด ๋จผ์ ํ์ฐ๋ ๊ฒฝ์ฐ ์งํํ ์ ์๋๋ก ํฉ๋๋ค. ์ฃผ์ํด์ผํ ์ ์ 2๊ฐ์ง๋ก ๋ถ์ด ์ฌ๋ฌ ๊ฐ ์กด์ฌํ ์ ์๋ค๋ ์ ๊ณผ, ๋ถ์ด ์์ ์๋ ์๋ค๋ ์ ์ ๋๋ค. ์ฆ, ๋ถ์ด ์ฌ๋ฌ ๊ฐ ์กด์ฌ๋ BFS๋ฅผ ๋๊ฐ์ด ํด๋ ๊ด์ฐฎ์ง๋ง, ๋ถ์ด ์๋ ๊ฒฝ์ฐ์๋ ๋ถ์ด ์ด๋ํ ๊ฑฐ๋ฆฌ ๋ฐฐ์ด์ ์ด๊ธฐํ์ธ ์ํ ๊ทธ๋๋ ์์ต๋๋ค. #include #include #include #include using namespace std; int n,m; int arr[1000][1000]; int fdist[1000][1000]; int jdist[1000][1000]; int dir[4][2] = {{0,1},{1,0..
-
[BaekJoon] 7576๋ฒ : ํ ๋งํSW Test/BaekJoon 2021. 4. 23. 01:38
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ์์์ ์ด ์ฌ๋ฌ ๊ฐ ์๋ BFS ๋ฌธ์ ๋ก BFS์ ๋ํ ํน์ง์ด ์ ๋๋ก ์์ด์ผ ํฉ๋๋ค. BFS๋ ํ์ ์ฒ์ ์์์ ์ ํ ๊ฐ ๋ด์๋ค๋ฉด, ์ด ๋ฌธ์ ๋ ์์์ ์ด ์ฌ๋ฌ ๊ฐ ์์ผ๋ฉด ์ฌ๋ฌ ๊ฐ๋ฅผ ํ๋์ ํ์ ๋ด๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ํ์์ front์ ํด๋น๋๋ ์์์ ์์ BFS๋ฅผ ์งํํ๊ฒ ๋๊ณ ํน์ ์์ญ์ ์ฌ๋ฌ ์์์ ์ค ์ฒ์ ๋ฐฉ๋ฌธํ ๋๊ฐ ์ต๋จ ๊ฑฐ๋ฆฌ์ ๋๋ค. #include #include #include using namespace std; int n,m; int arr[1000][1000]; int dist[1000][1000]; int dir[4][2] = {{0,1},{1,0},{0,-1},{-1,0}}; bool inside(int y, int x){ return..
-
[BaekJoon] 2178๋ฒ : ๋ฏธ๋ก ํ์SW Test/BaekJoon 2021. 4. 23. 01:34
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด BFS ํน์ง ์ค ํ๋๋ ํ์ํ๋ ์์ญ์ ์ต์ํ์ ๊ฑฐ๋ฆฌ๋ก ํ์ํ๋ค๋ ํน์ง์ด ์์ต๋๋ค. ๋ฐ๋ผ์ BFS ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ํ๋ ๊ณต๊ฐ์ ์ฒ์์ผ๋ก ํ์ํ๋ ์๊ฐ์ด ์ต๋จ๊ฑฐ๋ฆฌ ์ ๋๋ค. #include #include #include #include #include using namespace std; int n,m; int arr[100][100]; int dist[100][100]; int dir[4][2] = {{0,1},{1,0},{0,-1},{-1,0}}; bool inside(int y,int x){ return 0m; for(int i=0;i>s; for(int j=0;j
-
[BaekJoon] 1926๋ฒ : ๊ทธ๋ฆผSW Test/BaekJoon 2021. 4. 23. 01:26
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด BFS๋ฅผ ํ์ฉํ๋ ๋ฌธ์ ๋ก ๋ฐฐ์ด์ ๋ชจ๋ ์ง์ญ์์ BFS๋ฅผ ์คํํฉ๋๋ค. ์ฒ์ BFS์์ ์คํํ์ฌ ํ์ํ์ง ์์ ์ง์ญ์์ ๋ค์ BFS๋ฅผ ์คํํ์ฌ ๊ทธ๋ฆผ์ ๊ฐฏ์๋ฅผ ํ์ ํฉ๋๋ค. ๊ทธ๋ฆผ์ ์ต๋ ํฌ๊ธฐ๋ BFS๋ฅผ ์คํํ๋ฉด์ ํ์์ popํ ๊ฐฏ์๋ฅผ ์ธ์ด ๋น๊ตํฉ๋๋ค. #include #include #include using namespace std; int n,m; int arr[500][500]; bool visit[500][500]; int dir[4][2] = {{0,1},{1,0},{0,-1},{-1,0}}; bool inside(int y,int x){ return 0m; for(int i=0;iarr[i][j]; } } int cnt = 0; int ans..
-
[BaekJoon] 11724๋ฒ : ์ฐ๊ฒฐSW Test/BaekJoon 2021. 4. 23. 01:21
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ๊ทธ๋ํ๋ฅผ ๊ตฌํํ ์ ์๋์ง ํ์ธํ๋ ๋ฌธ์ ๋ก ์ธ์ ํ๋ ฌ์ด๋ ์ธ์ ๋ฆฌ์คํธ๋ฅผ ํตํด ํํํ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ธ์ ํ๋ ฌ๋ณด๋ค ์ธ์ ๋ฆฌ์คํธ๋ก ํ ๊ฒฝ์ฐ ์๊ฐ๋ณต์ก๋๊ฐ ๋ฎ์ต๋๋ค. O(N2) >n>>m; bool visit[1005]; fill(visit, visit+1005, false); for(int i=0;i>a>>b; vec[a].push_back(b); vec[b].push_back(a); }..
-
[Programmers] Lv3. ๋คํธ์ํฌSW Test/Programmers 2020. 3. 29. 16:06
์ด ๋ฌธ์ ๋ C++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์์ค์ฝ๋์ ๊ตฌํํด๋จ์ต๋๋ค. solution => DFS, solution2 => BFS DFS์ BFS ์ฐจ์ด๋ ์ถํ ์ ๋ก๋ ํ๊ฒ ์ต๋๋ค. ์ถ๊ฐ๋ก ๊ถ๊ธํ ์ ์ด๋ ์์ ํ ์ฌํญ ์์ผ๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์.