plzrun   8년 전

코드는 길어보이지만, 아주 읽기 쉬워요! 돠주세요 ㅠㅠ


먼저 map을 입력받았구요,

wno가 water number를 의미해요.

그래서 처음 물이 있었던 곳을 1로 초기화 해줬습니다. 나머지는 전부 0으로 초기화가 됩니다.

마찬가지로 map이 S이면 cnt[x][y]배열을 1로 초기화 해줬습니다. 나머지는 전부 0으로 초기화가 됩니다.


그리고 먼저 물을 bfs돌려서 전부 숫자를 채웁니다. map[x][y]=='D'이면 이때만 INT_MAX/2를 넣어주도록 했습니다.

숫자는 하나씩 증가해요 1 옆에 있는 애들의 물 넘버(wno)는 2가되고.. 그 다음은 3이 되고...


cnt도 마찬가지입니다. 처음 1일때를 기준으로 다음 애들을 체크하죠.

그리고 wno값이 cnt보다 크기만 하면 그쪽 map[x][y]으로 고슴도치가 이동할수 있도록 했습니다.


코드 보기 쉽게 하기위해서 한눈에 보실 수 있게 wno[x][y]보여주는 부분과 cnt[x][y]보여주는 부분을 코드에 집어넣었습니다. (주석 풀어주시면 돼용)

왜 틀렸는지 잘 모르겠어요.. ㅠㅠ 테스트 케이스 꽤나 넣어봤는데....


돠주세요 ㅠ

plzrun   8년 전

ㅎㅎㅎ 해결했습니다.


10 15
........X......
..XXXXX.X.*....
X.....X.X..*...
.X.S..X.X......
D.X...X.XXXXXXX
.X....X........
.X....X.XXXXXXX
.XXXXXX.X......
........X......
XXXXXXXXX...*..


틀렸던 TC입니다 ㅋㅋ

may900515   7년 전

plzrun

죄송한데 이거 답이먼가요?? 30맞나요?

plzrun   7년 전

@may900515

네 맞습니다

wjddydgns99   4년 전

감사합니다. 덕분에 해결했습니다.

hyuckang   3년 전

물이 도달하지 않는 경우를 생각못했네요,

덕분에 해결했습니다.

고맙습니다.

gunny6026   2년 전

덕분에 해결했습니다. 감사합니다

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