Dev.baelanche

[백준 1697] 숨바꼭질 본문

Data Structure & Algorithm/PS - JAVA

[백준 1697] 숨바꼭질

baelanche 2019. 4. 18. 20:24
반응형

 

 

1차원 배열에서 BFS 순회한다.

수빈이는 뒤로도 이동할 수 있으므로 동생과 못 만날 경우는 없다.

이동 조건이 {-1, 1, 2*x} 인 것만 유의하자.

 

 

 

public class Main {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int k = sc.nextInt();
        int a[] = new int[100001];
        boolean visited[] = new boolean[100001];
        Queue<Integer> queue = new LinkedList<Integer>();
        
        queue.offer(n);
        visited[n] = true;
        a[n] = 0;
        
        while(!queue.isEmpty()) {
            int size = queue.size();
            
            while(size-->0) {
                int me = queue.poll();
                int mx[] = {-1, 1, me};
                for(int i=0; i<3; i++) {
                    int nx = me + mx[i];
                    if(0 <= nx && nx < a.length) {
                        if(!visited[nx]) {
                            visited[nx] = true;
                            queue.offer(nx);
                            a[nx] = a[me] + 1;
                        }
                    }
                }
            }
        }
        System.out.println(a[k]);
    }
}
반응형

'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글

[백준 16397] 탈출  (0) 2019.04.19
[백준 2864] 5와 6의 차이  (0) 2019.04.18
[백준 5014] 스타트링크  (0) 2019.04.18
[백준 7576] 토마토  (0) 2019.04.18
[백준 2206] 벽 부수고 이동하기  (0) 2019.04.18
Comments