문제인간의 관리자는 (이었다 알고리즘은 어떤 원이 겹치는 경우 감지)
이 질문은 사실은 오늘 직장에서 내놓았다. 사용자에게 일련의지도를 보여줄 실험을 계획 중입니다. 각지도에는 31 개의 기호가 있습니다. 각 기호에는 레이블이 있습니다. 우리는 몇 가지 경우에 라벨이 겹쳐서 라벨 중 하나를 읽을 수 없도록 만들었습니다.
우리는 문제가되는 기호를 구식으로 식별했습니다. 각지도를 하나씩 살펴보고 발견 한 모든 문제 기호의 ID를 적어 두었습니다. 그러나이 문제가 아주 쉽게 해결되었을 수 있다고 생각했습니다. 알고리즘으로 시각적으로 모든지도를 확인하는 데 약 한 시간이 걸렸습니다 (시시한 clunky 실험 데이터 수집 도구 사용).
이 사이트의 사람들이이 문제를 얼마나 빨리 해결할 수 있는지 궁금합니다. 어떤 알고리즘을 생각해 내는지 궁금합니다. (참고 :.이 숙제 질문하지 않습니다, 나는 그것이 흥미로운 숙제 또는 면접 질문을 할 것이라고 생각하지만)
사양
- 지도 : 24
- 지도 크기 (픽셀) : 1024 지도 당 X 768 개
- 기호 (원) : 31
- 기호 직경 (픽셀) : 60
기호 좌표는 다음과 같은 열이 (탭으로 구분 된 텍스트 파일을 가정) 스프레드 시트 테이블에 저장됩니다
MapId
(범위 : 1 - 24)SymbolId
(범위 : 1-744 (24 개지도 기호 X 31/744 개 = 맵 전체 심볼)XCoordinate
(범위 : 0 - (1024))YCoordinate
(범위 : 0 - 768)
모든 가정 네 개의 열은 integers
입니다.
목표
당신이 알고리즘 (선택한 언어)이 가지고 올 수 얼마나 빨리 :
- 는 입력 데이터가 포함 된 탭으로 구분 된 텍스트 파일에서 읽습니다.
- 각지도에 대해 기호가 겹치는 지 여부를 결정합니다. 어떤 문자가 겹치는 경우
- ,
SymbolId
의이 위반
에있는 보고서는 대답은 위 세 가지 목표를 달성해야하는,
- 귀하의 알고리즘을 포함해야합니다.
- 당신이 그것을 생각하고 쓰는 데 얼마나 오랜 시간이 걸렸습니까 (당신은 존중받습니다). 참고 : 질문을 읽고 이해하는 데 걸리는 시간을 계산할 필요는 없지만 솔루션에 대한 아이디어를 생각해 내면 시계를 시작하십시오.
알고리즘의 실행 속도 또는 메모리 사용 효율에 관심이 없습니다. 나는 문제에 대한 빠르고 더럽지 만 정확하고 신뢰할만한 해결책을 찾고있다. 각 맵에 대한
는'XCoordinate'와'YCoordinate'의 정수 ? – Jacob
예, 모든 입력 데이터가 정수임을 나타내는 내 대답을 편집했습니다. – devuxer