일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- C++최적화
- 정렬
- dataasset
- 데이터애셋
- 프로그래머스
- BFS
- enumasByue
- 스마트포인터
- moreeffectiveC++
- UE4 커스텀로그
- 람다사용정렬
- 선택정렬
- map
- 정렬알고리즘
- stl
- C++
- 강참조
- 델리게이트
- UML관련
- 크리티컬섹션
- 언리얼가비지컬렉터
- unorder_map
- 람다
- UELOG
- 알고리즘
- 언리얼엔진구조체
- 약참조
- 자료구조
- UE_LOG
- 애셋로드
- Today
- Total
목록Coding Test - cpp/DFS (19)
기억을 위한 기록들
www.acmicpc.net/problem/13565 13565번: 침투 첫째 줄에는 격자의 크기를 나타내는 M (2 ≤ M ≤ 1,000) 과 N (2 ≤ N ≤ 1,000) 이 주어진다. M줄에 걸쳐서, N개의 0 또는 1 이 공백 없이 주어진다. 0은 전류가 잘 통하는 흰색, 1은 전류가 통하지 않 www.acmicpc.net #include using namespace std; int map[1001][1001]; int chk[1001][1001]; int N, M; int dir[4][2] = { {-1,0} ,{0,1} ,{1,0} ,{0,-1} }; bool bIsFind; void D(int _x, int _y) { if (_x == N-1) { bIsFind = true; return;..
www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진 www.acmicpc.net #include #include using namespace std; int target1; int target2; int cnt; vector info[100]; bool checkArr[100]; bool bIsSuc = false; int resultCnt = 9999; void D(int _n) { if (_n == target2) { bIsSuc = true; if (cnt < resul..
www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net #include #include using namespace std; int n; vector info[100001]; bool checkArr[100001]; int result[100001]; void D(int _n) { for (int i = 0; i < static_cast(info[_n].size()); i++) { int target = info[_n][i]; if (checkArr[target] == false) { checkArr[target] = true;..
www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net #include using namespace std; int map[100][100]; int Check[100]; int Computer = 0; int Line = 0; int cnt = 0; void DFS(int n){ Check[n] = 1; cnt++; for (int i = 1; i > Computer >> Line; for (int i = 0; i ..
#include using namespace std; int map[10][10]; int ch[10][10]; int cnt = 0; int dx[4] = { 1, 0, -1, 0 }; int dy[4] = { 0, 1, 0, -1 }; void D(int x, int y) { int xx; int yy; if (x == 6 && y == 6) cnt++; else { for (int index = 0; index 6 || yy 6) //범위 벗어남 continue; if (map[xx][yy] == 0 && ch[xx][yy..
#include using namespace std; int n; int result; int arr[10]; int cnt = 0; void D(int L, int sum) { if (L == n) { if (result == sum) { cnt++; } } else { D(L + 1, sum + arr[L]); D(L + 1, sum); D(L + 1, sum - arr[L]); } } int main() { cin >> n; cin >> result; int input; for (int i = 0; i > input; arr[i] = input; } D(0, 0); if (cnt == 0) { cout
#include #include using namespace std; int ans=0; void dfs(vector numbers, int target, int sum, int idx){ if(idx >= numbers.size()){ if(sum==target) ans++; return ; } dfs(numbers, target, sum+numbers[idx], idx+1); dfs(numbers, target, sum-numbers[idx], idx+1); } int solution(vector numbers, int target) { dfs(numbers, target, 0,0); return ans; }