qwq713   6년 전


어디가 틀렸는지 아에 모르겠네요...

단순히 연결되어있으면 bfs 시작된 횟수만큼 (bfs가 시작되면 인접한 노드 모드 색칠(true)됨)

return해주면 된다고 생각했는데 .... 아무리봐도모르겠네요 ㅠ 문제진행은 50%까지 됩니다.ㅜ

djm03178   6년 전

resetArr이 0은 안 지우고 자칫하면 배열 범위를 벗어난 3000을 지웁니다.

qwq713   6년 전

헉. 재활용했다가 이런 문..제가.. 감사합니다 빠르게돌려보겠습니다 !!

qwq713   6년 전

그래도 오류가 뜨네요 코드 다시한번 읽어봤는데 어디에서 문제가 생기는지 감이 안오네요 ..

djm03178   6년 전

55번째 줄이 잘못되었습니다. size는 조건을 검사할 때마다 호출되므로 루프를 돌 때마다 줄어들어 결국 원소를 다 없애기 전에 j가 더 커지게 됩니다.

이렇게 하지 말고 그냥 list[i].clear(); 를 하면 됩니다.

djm03178   6년 전

여담으로, 적을 의미하는 영단어는 r이 없는 enemy 입니다.

qwq713   6년 전

아에 로직이 잘못되었나봐요. 

제 생각에는 68라인에 sqrt 함수 쓰면서 소수점에서 값이 어긋날수도 있다고 생각하는데

이부분은 신경쓰지 않아도 되는 부분인가요?

djm03178   6년 전

워낙 작은 수라 괜찮을 것 같긴 한데, 찜찜하면 double 쓰지 말고 제곱 상태로 비교해보세요.

그보다 하나 잘못된 건, resetArr을 n-1로 호출하시면 안 되죠. 이보다 작은 수까지 초기화하니까, n-1까지 초기화하려면 n으로 호출해야죠.

qwq713   6년 전

djm03178님 같은말 반복하시게해서 정말 죄송합니다. 경계값을 자꾸 고치다보니.. 결국 경계값 문제였네요

원래 코드 재활용을 아에 안하는데 너무 피곤해서 잠깐 편하려고 확인도안하고 저번꺼 코드 가져다 써서 결국 이렇게 되었네요 ㅠ

저번에 BFS 중복해결문제에 이어 다시한번 감사드립니다 !!!

아래는 완성된 코드입니다 감사합니다!!

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