museum114   4년 전

질문 글에 올라와있는 테스트 케이스를 돌리니 나와야 하는 output보다 더 적은 값이 나오는 건 무슨 경우죠...? 

Divide and Conquer 로 풀려고 했습니다...

  1. 가운데 index를 기준으로 왼쪽과 오른쪽으로 구역을 나눠서 재귀한다. 
  2. 왼쪽과 오른쪽 각각에서 도출된 최소거리 중 더 작은 값을 temp_distance에 저장한다.
  3. 중심 축의 x좌표로부터 temp_distance 보다 적게 떨어진 점을 penetrate 라는 list에 저장한다.
  4. penetrate를 y좌표를 기준으로 정렬한다.
  5. 이중 for문을 통해서 각 점을 비교하는데 이 때 y축의 좌표간 거리가 알려진 최소거리보다 멀면 바로 break한다. 
  6. 결과값을 return 한다

왜 안되는 걸까요?

djm03178   4년 전

정말로 이 코드가 제출했던 코드 그대로인가요? 주석으로 설명을 덧붙이는 건 좋지만, 적어도 실행되는 코드 자체는 제출했던 코드 그대로에서 한 글자도 다르지 않게 해주세요.

입력 받는 부분을 주석처리해놓고 신경쓰지 않아도 된다고 하시면 어떻게 실행을 시켜야 할지 모르겠습니다.

museum114   4년 전

그 부분을 생각하지 못했네요... 죄송합니다.

코드는 수정했습니다. 

kyunamk   4년 전

sqrt를 사용하면.. data의 유실이 발생합니다.

distance 내부 처리를 제곱으로 관리하면.. 아무래도 그러한 error는 없을 거 같은데..

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