코드 피드백 부탁드립니다. (미로의 최단거리 통로 BFS)
234
pds514514
작성한 질문수 3
0
미로의 최단거리 통로 문제를 먼저 보고 풀고 성공하고 나서 강사님 강의에 나오는 코드를 보니 저와는 조금 다른데 제 코드와 비교해서 강사님 코드가 더 효율적일까요? 코드 짜는 방식을 강사님 식으로 짜는 걸로 연습을 해야 할지 아니면 제 방식으로 비슷한 문제를 풀어나가도 되는지 아니면 추후에 강사님 식으로 푸는 게 나중에 응용이나 활용 문제 나왔을 때 더 좋은가 궁금합니다. 제 코드 피드백 좀 부탁드리고 싶습니다. 매번 감사드립니다!
```java
import java.util.*;
public class MazeSearch2 {
public static int[][] map = new int[7][7];
public static int ans = 0;
public static int[] arrX={0,0,1,-1};
public static int[] arrY = { 1, -1, 0, 0 };
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 7; i++)
for (int j = 0; j < 7; j++)
map[i][j] = sc.nextInt();
map[0][0] = 1;
System.out.println(solution(0, 0));
}
public static int solution(int x, int y) {
Queue<Integer> q = new LinkedList<>();
q.add(x);
q.add(y);
while (!q.isEmpty()) {
int len = q.size()/2;
for (int i = 0; i < len; i++) {
int xx = q.poll();
int yy = q.poll();
for (int j = 0; j < 4; j++) {
if (xx + arrX[j] < 7 && yy + arrY[j] < 7 && xx + arrX[j] >=0 && yy + arrY[j] >=0) {
if (map[xx + arrX[j]][yy + arrY[j]] == 0) {
if (xx+arrX[j] == 6 && yy+arrY[j] == 6)
return ans+1;
map[xx + arrX[j]][yy + arrY[j]] = 3;
q.add(xx + arrX[j]);
q.add(yy + arrY[j]);
}
}
}
}
ans++;
}
return -1;
}
}
```
답변 1
안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.
0
21
1
갑자기 채점 사이트가 바뀌었어요
0
29
1
문제 리스트 페이지
0
25
1
채점 사이트 관련 질문드립니다
0
23
1
봉우리 문제 질문입니다
0
79
2
씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?
0
63
0
이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?
0
70
0
가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법
0
67
1
좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ
0
84
2
6-7 강의에서
0
47
1
6-6. 장난꾸러기 질문 있습니다.
0
43
1
강의 수강후 코딩테스트
0
106
1
answer 변수 사용 여부
0
43
1
2중 for문
1
84
2
2-11. 임시반장정하기 (Runtime Error)
0
63
1
혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?
0
69
1
이런 풀이는 어떨까요
0
42
1
자바 스트림 방식의 효율성 질문 드립니다.
0
56
1
알고리즘 자료 구조들..
0
60
1
StringBuilder vs BufferdWriter
0
47
1
원더랜드(프림)
0
48
1
이런 코드는 어떤가요?
0
59
1
bfs 풀이
0
56
1
병합정렬
0
55
1





