일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 선택정렬
- map
- enumasByue
- 언리얼가비지컬렉터
- 언리얼엔진구조체
- 델리게이트
- 스마트포인터
- 알고리즘
- 정렬
- 강참조
- moreeffectiveC++
- 크리티컬섹션
- dataasset
- 람다
- C++
- 데이터애셋
- unorder_map
- 람다사용정렬
- UML관련
- BFS
- 애셋로드
- C++최적화
- UELOG
- UE_LOG
- 약참조
- 프로그래머스
- UE4 커스텀로그
- 정렬알고리즘
- 자료구조
- stl
- Today
- Total
목록Coding Test - cpp/DFS (19)
기억을 위한 기록들
www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net #include #include #include #include using namespace std; string map[101][101]; int visited[101][101]; int dir[4][2] = { {-1,0} ,{0,1} ,{1,0} ,{0,-1} }; int whiteCnt; int blueCnt; int n, m; int cnt; void D(int _x, int ..
www.acmicpc.net/problem/9466 9466번: 텀 프로젝트 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 www.acmicpc.net #include using namespace std; int n = 0; int cnt = 0; int arr[100001]; int visited[100001]; int resultArr[100001]; void D(int curNum) { visited[curNum] = true; int targetNum = arr[curNum]; //현재노드가 가리키고 있는 번호 if (!visited[targetNum]) /..
www.acmicpc.net/problem/2210 2210번: 숫자판 점프 111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, 212121 이 가능한 경우들이다. www.acmicpc.net #include using namespace std; int map[6][6]; int dir[4][2] = { {-1,0} ,{0,1} ,{1,0} ,{0,-1} }; int check[1000000]; int result; void dfs(int x, int y, int sum, int depth) { if (depth == 5) { if (check[sum] ==..
programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr #include #include #include using namespace std; int answer = 214000000; int check[51]; void D(string begin, string target, vector words, int cnt = 0) { int n = words.size(); for (int i = ..
www.acmicpc.net/problem/1937 1937번: 욕심쟁이 판다 n*n의 크기의 대나무 숲이 있다. 욕심쟁이 판다는 어떤 지역에서 대나무를 먹기 시작한다. 그리고 그 곳의 대나무를 다 먹어 치우면 상, 하, 좌, 우 중 한 곳으로 이동을 한다. 그리고 또 그곳에서 www.acmicpc.net #include #include #include #include using namespace std; int n; int map[501][501]; int dp[501][501]; int temp = -214000000; int dir[4][2] = { {-1,0} ,{0,1} ,{1,0} ,{0,-1} }; int D(int _x, int _y) { if (dp[_x][_y] != 0) { retur..
www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net #include #include #include using namespace std; int n, m; int map[300][300]; int check[300][300]; int checkTemp[300][300]; int result = 0; int year = 0; int dir[4][2] = { {-1,0} ,{0,1} ,{1,0} ,{0,-1} }; //얼음 몇 덩어리인지 세기용 void Che..
www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net #include #include #include using namespace std; int n; char map[101][101]; bool check[101][101]; int dir[4][2] = { {-1,0} ,{0,1} ,{1,0} ,{0,-1} }; void D2(int _x, int _y, char curChar) { for (int i = 0; i < 4; i++) { int nextX ..
www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net #include #include using namespace std; int r, c; char map[20][20]; bool check[26]; int result = 0; int dir[4][2] = { {-1,0} ,{0,1} ,{1,0} ,{0,-1} }; void D(int _x, int _y, int cnt) { if (result < cnt) result = cnt; for (int i =..
www.acmicpc.net/problem/2617 2617번: 구슬 찾기 모양은 같으나, 무게가 모두 다른 N개의 구슬이 있다. N은 홀수이며, 구슬에는 번호가 1,2,...,N으로 붙어 있다. 이 구슬 중에서 무게가 전체의 중간인 (무게 순서로 (N+1)/2번째) 구슬을 찾기 위해서 www.acmicpc.net #include #include #include using namespace std; bool visited[100]; vector heavyMap[100]; vector lightMap[100]; int check[100]; int cnt = 0; void D(vector _map[100], int n) { int size = _map[n].size(); for (int i = 0; i < ..
www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net #include #include using namespace std; int map[501][501]; bool check[501][501]; int cntArea = 0; int n, m; int dir[4][2] = { {-1,0} ,{0,1} ,{1,0} ,{0,-1} }; void D(int _x, int _y) { check[_x][_y] = true; cntArea++; for (int i = 0; i <..
www.acmicpc.net/problem/3187 3187번: 양치기 꿍 입력의 첫 번째 줄에는 각각 영역의 세로와 가로의 길이를 나타내는 두 개의 정수 R, C (3 ≤ R, C ≤ 250)가 주어진다. 다음 각 R줄에는 C개의 문자가 주어지며 이들은 위에서 설명한 기호들이다. www.acmicpc.net #include #include #include #include #include using namespace std; string map[251][251]; int chk[251][251]; int kNum; int vNum; int r, c; int dir[5][2] = { {-1,0} ,{0,1} ,{0,0} ,{1,0} ,{0,-1} }; void D(int _x, int _y) { for (..
www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ 10,000)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진 www.acmicpc.net #include #include #include #include #include using namespace std; int map[100][100]; int check[100][100]; int n, m; int k; int dir[4][2] = { {-1,0} ,{0,1} ,{1,0} ,{0,-1} }; int cnt = 0; void D(int _x,int _y..