https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net ※잘못된 BFS #include #include using namespace std; int dx[2]= {-1, 1}; queue q; bool visited[100001]; int N; int K; int BFS(int X, int cnt){ visited[X] = true; queue q; q.push({X, cnt}); while(!q.empty()){..
https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 유명한 0/1 knapsack problem 다이나믹 프로그래밍 문제입니다. 사실 저도 못 풀어서 결국에는 검색을 통해 알게 된 문제... https://gsmesie692.tistory.com/113 Dynamic Programming: 배낭 채우기 문제 (Knapsack Problem) 도둑이 보석가게에 배낭을 메고 침입했다. ..
https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net #include #include #include #include #define INF 100000000 using namespace std; int N; int M; int dist[1001]; vector a[10001]; int dijkstra(int start, int end){ priority_queuepq; for(int i = 0; i >N>>M>>X; f..
https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 잘못 생각한 문제!! #include #include using namespace std; int n; int map[500][500]; int j = 0; int MAX = 1000000000; bool visited[100][100]; int dx[2] = {0, 1}; int solution = 0; void dfs(int y, int x, int depth, int sum){ if(depth == n){ solution = max(sum, solution); }..
https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net #include #include #include using namespace std; int N; char X; char Y; char Z; int parent[27][2]; void preorder(char root){ if(root =='.'){ return; }else{ cout> Y >> Z; parent[X - 'A'][0] = Y; parent[X - 'A'][1] = Z; ..