본문 바로가기

DFS5

[백준] 1450번 : 냅색문제 (냅색, DFS) https://www.acmicpc.net/problem/1450 1450번: 냅색문제 첫째 줄에 N과 C가 주어진다. N은 30보다 작거나 같은 자연수, C는 109보다 작거나 같은 음이 아닌 정수이다. 둘째 줄에 물건의 무게가 주어진다. 무게도 109보다 작거나 같은 자연수이다. www.acmicpc.net #include #define F_I ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); // F_I 사용 시 주의) scanf 와 cin 혼합 사용 금지 #define INF 987654321 using namespace std; typedef long long ll; typedef pair pl; typedef pair pi; ll Min(ll a, .. 2022. 1. 25.
[백준] 1012번 : 유기농 배추 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 � www.acmicpc.net //C++ #include #define F_I ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define pi 3.1415926535 using namespace std; typedef long long ll; int m, n, k, cnt; int arr[54][54]; int visited[54][54]; int dir[4][2] = { {0,1},{.. 2020. 8. 18.
[백준] 16929번 : Two Dots https://www.acmicpc.net/problem/16929 16929번: Two Dots 첫째 줄에 게임판의 크기 N, M이 주어진다. 둘째 줄부터 N개의 줄에 게임판의 상태가 주어진다. 게임판은 모두 점으로 가득차 있고, 게임판의 상태는 점의 색을 의미한다. 점의 색은 알파벳 대문�� www.acmicpc.net //C++ #include #define F_I ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define pi 3.1415926535 using namespace std; typedef long long ll; char arr[51][51]; int dir[4][2] = { {0,1},{0,-1},{1,0},{-1,0} }; int .. 2020. 8. 4.
[백준] 2667번 : 단지 번호 붙이기 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. � www.acmicpc.net #include using namespace std; int n; int house[26][26] = { 0 }; int danji_max[1000]; //index 1을 1단지로 하기! index 1부터 출력! int danji_index = 0; int dir[4][2] = { {1,0},{-1,0},{0,1},{0,-1} }; //한 점으로 부터의 UP,DOWN,RIGHT,LEFT int i.. 2020. 6. 21.
그래프 구현과 DFS 탐색하기 (C) #include #include //인접행렬 만들기 int arr[100][100]; int allVisited(int* visited, int row) //모든 vertex가 방문되었다면 1을 반환, 그렇지 않다면 0을 반환 { int flag = 1; for (int i = 0; i < row; i++) { if (!visited[i]) flag = 0; } if (flag == 1) return 1; else return 0; } void dfs(int arr[][7], int* visited, int* stack, int top, int vertex, int row) { visited[vertex] = 1; printf("%d ", vertex+1); int i; for (i = 0; i < ro.. 2020. 5. 29.