해결된 질문
작성
·
407
·
수정됨
0
package dfs_and_bfs;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
public class Solution_7 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String positions[] = br.readLine().split(" ");
int S = Integer.parseInt(positions[0]);
int E = Integer.parseInt(positions[1]);
Queue<Integer> queue = new LinkedList<>();
int levels[] = new int[10001];
boolean[] visited = new boolean[10001];
queue.offer(S);
levels[S] = 0;
visited[S] = true;
int[] dis = {1, -1, 5};
while(!queue.isEmpty()) {
int pos = queue.poll();
if(pos == E) {
System.out.println(levels[pos]);
break;
}else {
for(int i = 0; i < dis.length; i++) {
int newPos = pos + dis[i];
if(newPos >=1 && newPos <= 10000 && !visited[newPos]) {
queue.add(newPos);
levels[newPos] = (levels[pos] + 1);
visited[newPos] = true;
}
}
}
}
}
}
혹시 이런 식으로 구현하게 되면 levels 라는 배열이 필요하게 되는데 맞나요? 채점 사이트에서는 맞았다고 나옵니다