quf9484   4년 전

다른 질문을 봐도 이해가 되지 않아 올립니다.

25%정도에서 런타임 에러가 나와서 수정했더니 50%에서 런타임 에러가 나옵니다.

고수분들 부탁드립니다 ㅜㅜ

nahwasa   4년 전

x, y (0 ≤ x, y ≤ 5,000)

이면 x, y 는 5001개입니다.

map = new int[5000][5000];

에서 문제가 생겼을듯싶네요.

따로 처리하셨는지는 안봤지만, 어쨌든 어떤방식으로든 문제가 생길듯합니다.

일단 x가 5000, r이 0이면(0이상이므로 가능)

69번째줄에서 i<5000으로 튕기겠군요.

nahwasa   4년 전

추가로

이 방식으로 하실 경우, 닿아있지 않아도 그룹으로 판단할 여지가 있습니다.

반례입니다.

전 아직 안풀어보긴 했는데 저거 답이 2가 나와야 맞는거죠?!

1
2
0 0 1
0 3 1

quf9484   4년 전

감사합니다

바운더리 영역을 제대로 체크하지 못했네요ㅜㅜ

quf9484   4년 전

그리고 두번째 반례를 들어주신거는 문제지문의

'만약 임의의 통신영역 Ai와 Aj가 닿거나 겹치는 부분이 있다면 진영 i와 진영 j는 직접적으로 통신이 가능하다' 라는 부분으로 미루어보아

닿는다고 생각하기 때문에 통신이 가능한 부분 아닌가요?

nahwasa   4년 전

음 애매하네요 말이 좀.

0 0 1
0 2 1

이러면 서로 간격 0으로 닿는거고

0 0 1

0 1 1

이러면 겹치는거구요.

0 0 1

0 3 1

이러면 0 0에서 범위 1, 0 3에서 범위 1이니

사실 0 1 ~ 0 2 부분이 빈다고 봐야하지 않을까 싶긴합니다.

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