인프런 커뮤니티 질문&답변
송아지 찾기 문제
해결된 질문
작성
·
475
·
수정됨
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 라는 배열이 필요하게 되는데 맞나요? 채점 사이트에서는 맞았다고 나옵니다





