dhedaa   7년 전

이런 문제 풀때 개념이헷갈려서 그러는데요 

만약 S와 *이 행동하는 함수를 각각만들어서 프로그램을 돌릴경우


그함수두개는 동시에 돌아가는건가요??

아니면 하나가 돌아가고 그다음함수가 돌아가는건가요??  


아니면 프레임한번에 동시에 돌아가는원리인가요??

sgchoi5   7년 전

BFS 는 queue 를 이용하여 시작점에서 1 번 이동 가능한 것들을 모두 queue 에 담고 (1 단계)

1 단계에서 이동가능한 (visited or 갈 수 없는 곳 제외) 모든 것들을 queue 에 담고 (2 단계)

2 단계에서 이동가능한 (visitedor 갈 수 없는 곳 제외) 모든 것들을 queue 에 담고 (3 단계)

..

이런 식으로 2 차원 배열에서 최소의 어떤 값을 찾는 방식인데, 이것만 생각하면 도착에 도달하는 단계만 생각하면 되니까 쉬운데,

이 문제는 물이라는 개념때문에 더 복잡해지는 것 같습니다.


샘플입력에 대해서 2 차원 배열이라고 하면

D . *
.  .  .
. S .

1 분 후에는 

D**
. (.) *
(.) S (.)

첫 번째 레벨 queue 에 들어간 것 ()

2 분 후에는 
D**
(.) * *
. S *
두 번째 레벨 queue 에 들어간 것 ()

3 분 후에는 
(D) **
* * *
. S *
세 번째 레벨 queue 에 들어간 것 () 이고, 도착했으니 답이 3 인듯


아래 부분이 명확하게 안 다가오네요.. 물을 먼저 배열에 채우고 이동할 경로를 찾는 방식이면 될런지.. 음.. 

=> 고슴도치는 물이 찰 예정인 칸으로 이동할 수 없다. 즉, 다음 시간에 물이 찰 예정인 칸으로 고슴도치는 이동할 수 없다. 이동할 수 있으면 고슴도치가 물에 빠지기 때문이다.


dhedaa   7년 전

오 설명 감사헤요 이해가 되긴하는데


저 물이 찰 예정인칸으로 이동할 수 없다라고 나오는게 물이 차고 그 다음 찰곳까지 계산하라는건지가 헷갈렸어요 ㅠㅠㅠ

댓글을 작성하려면 로그인해야 합니다.