leeyh2006   4년 전

전체적인 배열 검사를 통해 1이 있으면 인접한 부분에 0들을 1로 바꿔주는 작업을 통해서 그게 맞으면 큐에 집어 넣도록 설계를 하였는데

여기서 제가 배열이 다 1이 됬을때에 걸린 시간을 (= 날짜) 못구하고 있어요 ㅠㅠ 도와주시면 감사하겠습니다.

sgchoi5   4년 전

이 문제는 너무 복잡하게 생각하지 말고, BFS 를 기본 로직으로 약간 응용하면 됩니다.

처음에 입력을 받는 시점에 익은 익지 않은 토마토의 개수를 세어 놓고, 0 개면 바로 0 출력 후 종료

(ad[i][j] = data; 로 입력값 data 를 계속 체크)

queue 에 단계별로 넣으면서 토마토는 익은 토마토로 바뀌게 되는데, 바뀔 때마다 익지 않은 토마토의 개수를 줄여줍니다.

queue 에 단계별로 넣으면서 익지 않은 토마토 숫자가 0 이 되면 그 단계를 답으로 출력하고 BFS 를 종료하면 되고,

BFS 가 끝났는데, 아직 익지 않은 토마토가 남았으면 -1 을 출력하면 됩니다.

leeyh2006   4년 전

Que에 data를 집어넣을때 어떤식으로 집어넣어야 될지 모르겠어서요 ..ㅠ

sgchoi5   4년 전

정답과 설명이 있는 문제이니 설명을 잘 보시고, 정답 코드를 잘 분석해 보시기 바랍니다. 

debugger 로 line by line 으로 한 줄씩 어떻게 돌아가는지 잘 보시면 제가 설명한 내용이랑 별반 다르지 않을 듯 하네요. 아래 링크 참고해주세요.

http://gooddaytocode.blogspot.... 

leeyh2006   4년 전

감사합니다~


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