Algorithm/Algorithm 이론
[기타] 라인 스윕
위처럼 위치가 표시되어이있는 직선에 임의의 점 2개를 찍고 직선을 긋는다. 직선끼리 일부분이 겹칠 수도 있다. 총 N개의 직선을 그었을 때 그어진 선의 전체 길이를 구하는 문제이다. 간단하게 직선마다 배열에 1을 찍으며 길이를 구할 수도 있지만 그렇게 하면 선분의 수가 많아졌을 때 매우 비효율적인 알고리즘이 되어버린다. 극단적인 예를 들었을 때 위 문제의 최대 데이터가 +-10,0000이고 길이 최대인 선분 1,0000개를 그린다고 하면 총 20,0000,0000번 반복하는 알고리즘이 되어버리는 것이다. 위 문제는 대부분 주어지는 N과 전체 구간의 크기가 크기 때문에 O(n) 복잡도를 가지도록 구현 해야한다. a. 기본 개념 풀이 직선의 양 끝단을 받을 때 a가 b보다 작다면 a와 b를 바꿔 저장한다. ..
2019. 12. 5. 20:41