[C++]BOJ 2583 - 영역 구하기
[C++]BOJ 2468 - 안전 영역

[C++]BOJ 2468 - 안전 영역

범위가 그리 크지 않기 때문에 내리는 비의 양을 완전탐색하고 그때마다 높이를 기준으로 dfs나 bfs를 돌리면 된다.
이 문제는 dfs로 풀어봤다.

Read More
[C++]BOJ 6603 - 로또

[C++]BOJ 6603 - 로또

주어진 집합에서 수 6개를 고르는 경우의 수를 완전탐색하는 문제다.
사전순 출력이기 때문에 dfs로 순차 출력하면 된다.

Read More
[C++]BOJ 11403 - 경로 찾기
[C++]BOJ 11724 - 연결 요소의 개수

[C++]BOJ 11724 - 연결 요소의 개수

단순한 탐색 문제다.
모든 노드를 간선을 따라 탐색하며 방문처리를 한 후, 방문을 안한 노드가 있다면 모든 노드를 방문할 때 까지 탐색하고 총 탐색 횟수를 출력하면 된다.
dfs와 bfs모두 쓸 수 있다.

Read More
[C++]BOJ 14502 - 연구소

[C++]BOJ 14502 - 연구소

주어진 지도의 크기가 최대 8 * 8이므로 바이러스와 벽이 아무것도 없다고 가정하면 벽을 세울 수 있는 경우의 수는 64C3 대략, 40,000 가지이다.
그러므로 벽을 세우는 문제는 완전탐색으로 해결할 수 있다.
벽을 세우는 모든 방법의 수 마다 바이러스가 퍼지는 경우를 dfs로 탐색하고 안전영역이 가장 큰 경우의 수를 기억해 마지막에 전체 칸의 갯수 - 퍼진 바이러스의 갯수 - 처음에 있던 벽의 갯수 - 3을 출력한다.

bfs로도 풀 수 있다. 귀찮아서 안 해봤다.

Read More
[C++]BOJ 1012 - 유기농 배추

[C++]BOJ 1012 - 유기농 배추

배열을 순회하며 배추를 만나면 그 지점부터 bfs나 dfs를 돌리며 모두 0으로 초기화한다.
이 과정을 반복해 모둔 배추 영역을 찾은 후 그 영역의 갯수를 출력하면 된다.
bfs와 dfs모두 다뤄보겠다.

Read More