안녕하세요 선생님 저는 bfs로 풀어봤는데요..
215
celestial_
작성한 질문수 72
0
예제랑 테스트케이스(input 1,2)
전부 맞게 나오는데 왜 틀렸는지 모르겠어서
주석과 함께 설명을 넣었습니다.
어느 부분이 문제인지 확인해주시면 감사하겠습니다ㅜ!
#include<stdio.h>
#include<iostream>
#include<vector>
#include<queue>
#define MAX 21
using namespace std;
int map[MAX][MAX];
int dp[MAX][MAX];
bool visited[MAX][MAX];
int n;
typedef struct Node {
int x;
int y;
int dp;
}node;
queue<node>Q;
int dx[2] = { 0,1 };
int dy[2] = { 1,0 };
void BFS() {
node current;
while (!Q.empty()) {
current.x = Q.front().x;
current.y = Q.front().y;
current.dp = Q.front().dp;
Q.pop();
/* printf("<<<(%d,%d,%d)에서 탐색을 시작합니다. >>>\n\n", current.x, current.y, current.dp);
printf("<<<현재 dp배열의 상태입니다. >>\n\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", dp[i][j]);
}
printf("\n");
}*/
for (int i = 0; i < 2; i++) {
int x = current.x + dx[i];
int y = current.y + dy[i];
if (x >= n || y >= n) {continue;}
if (dp[x][y] > current.dp + map[x][y]) {
/*printf("current.dp : %d\n\n", current.dp);
printf("map[x][y] : %d\n\n", map[x][y]);*/
dp[x][y] = current.dp + map[x][y];
node next;
next.x = x;
next.y = y;
next.dp = dp[x][y];
//printf("(%d,%d,%d)에서 BFS탐색을 계속합니다. \n\n", next.x, next.y, next.dp);
Q.push(next);
}
}
}
return;
}
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> map[i][j];
dp[i][j] = 1000000;
}
}
node start;
start.x = 0;
start.y = 0;
start.dp = map[0][0];
dp[0][0] = map[0][0];
visited[0][0] = true;
Q.push(start);
BFS();
printf("%d ", dp[n - 1][n - 1]);
}
답변 1
테스트 케이스 질문
0
371
1
병합정렬 시간복잡도 질문
0
461
1
41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.
0
1341
2
질문드립니다.
0
374
1
질문드립니다!
0
427
1
dev 프로그램 질문
0
272
1
문제가 이해가 안되요
0
374
1
4번 나이차이 문제 접근법 질문 드립니다.
0
305
1
source file not compiled
0
1033
3
59번 질문드립니다.
0
369
1
25번 문제 질문
0
345
1
4. 나이차이 문제 질문입니다.
0
367
1
90번 라이언 킹 심바 1번 테스트 케이스
0
468
1
71번 문제 전역 변수 질문 있습니다
0
357
1
75번, 79번 priority_queue관련
1
353
1
75.최대 수입 스케줄
0
394
2
복면산 정답의 수
0
428
1
테스트 케이스에 대해서
0
443
1
수업 내용 질문입니다!
1
228
1
풀어보면 좋은 문제 목록 - 2580 스토쿠 DFS 질문입니다!!
0
818
2
12. 플로이드-와샬(그래프 최단거리) . 27:25초
0
251
1
다른 풀이 방식
0
314
1
크루스칼 vs 프림
0
303
1
숫자 총개수 small 질문있습니다.
0
234
1





