Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 1697] 숨바꼭질 본문
반응형
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