일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 서울에서경산까지
- dart
- 삼성
- 해시해킹
- BOJ
- spring boot
- DP
- BOJ14889
- 1로만들기2
- sw expert academy
- 그리디
- 15353
- 26008
- 14863
- 재귀함수
- 재귀
- C++
- Python
- Flutter
- 스택
- 15662
- 회전하는큐
- 크로스핏
- D1
- 4811
- 동적프로그래밍
- 1781
- 브루트포스
- 백준
- Crossfit
- Today
- Total
목록Coding Test/C++ (56)
곧죽어도 콛잉

https://www.acmicpc.net/problem/1189 1189번: 컴백홈 첫 줄에 정수 R(1 ≤ R ≤ 5), C(1 ≤ C ≤ 5), K(1 ≤ K ≤ R×C)가 공백으로 구분되어 주어진다. 두 번째부터 R+1번째 줄까지는 R×C 맵의 정보를 나타내는 '.'과 'T'로 구성된 길이가 C인 문자열이 주어진다 www.acmicpc.net 1) find_rt함수를 재귀적으로 실행해준다. (bfs나 dfs처럼 동작) 1-1) base 조건은 x,y가 목적지에 도달했고 여기까지 온 비용이 K와 동일할때 1를 리턴한다. 1-2) 비용이 K와 동일하지 않다면, 0을 리턴한다. 1-3) 목적지에 아직 도달하지 않았다면, 목적지까지 네 방향으로 순회한다. 난 먼가 어려웠다... bfs나 dfs는 공식대로..

https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 1) 순서와 상관없이 빈공간 중에서 3개를 뽑는다. 2) 앞에서 구한 경우의 수만큼 반복문을 돌려준다. 2-1) 벽을 세워준다. 2-2)모든 바이러스를 확산(dfs) 시킨다. 2-3) 안전구역의 개수를 구한다. 2-4) 안전구역이 최대값인지 확인한다. 3) 안전 구역의 최대값을 출력한다. 일단 전체 범위를 보면 그렇게 크지 않다. 즉, 그냥 문제 설명대로 따라가기만 해도 문제가 풀린다! 무식하게 한번해보자. ..

https://www.acmicpc.net/problem/1325 B)은 성립되지 안되는 걸 꼭 짚고 가야한다. 나는 그걸 착각해서 고생을 좀 많이했다 ㅠㅠ 문제를 꼭 제대로 읽자. (나만 바보였을지도...^) bfs로 트리를 순회하는데, 여기서 주목해야할 점이 바로 void가 아니라 int형을 반환한다. 이것도 이전 트리문제와 비슷한데, 재귀를 돌수록 합이 증가해 결국 최종 리턴값은 자식 노드들의 개수 + 1(자기자신)가 된다! 이렇게 최종적으로 나온 리턴값의 최대값을 구하면 된다! 같을 경우에는, 별도의 배열에 넣어주자. #include using namespace std; int N, M, A, B; vector arr[10001]; int vis[10001], res[10001]; int dfs(..

https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 1) 인접 리스트를 통해 트리를 완성한다. 이때, root를 따로 지정해준다. 2) 리프노드를 찾는 int dfs(n) 함수를 만들어준다. 이때, dfs(n)는 return 될때 n인 노드가 리프노드라면 1을, 아니면 ret를 출력한다. 2-1) 단, n이 delete_num일 경우, 더이상 함수 진행을 하지 않는다. 2-2) 반복문을 돌때마다 ret값을 갱신해준다. 3) ret를 출력해준다..

https://www.acmicpc.net/problem/2910 2910번: 빈도 정렬 첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. www.acmicpc.net 1) 빈도수를 저장해야하므로 맵 자료구조를 사용한다. 이때, 맵 자료구조를 하나 더 사용하여 나온 순서도 저장한다. 2) 저장된 맵 자료구조를 정렬해야하므로 vector에 저장해준다. 3) 빈도수 정렬의 규칙에 따라 cmp 함수를 설정하고 sort를 진행한다. 4) vector를 출력한다. 우선 해당 수 : 빈도 수 가 필요하다는 것은 바로 알아차렸을 것이다. 그렇다면 바로 써줘야하는 자료구조는 바로 map이다!!! map을 이용하면 매우..

https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 1) 재귀함수 q(x, y, n)를 설정한다. - 종료조건 : n==1 이 되면 x,y에 해당하는 숫자를 push_back 해준다. - 반복 : x, y부터 x+n,y+n까지 탐색을 시작한다. 만약 x,y에 해당하는 숫자와 다른 숫자가 나온다면, q를 호출하여 4번을 재귀적으로 돌린다. 추가로, 여는 괄호 '(' 를 push_back 해준다. 4번의 재귀가 끝난다면, 닫는 괄호 ')'..